c++ 中的继承
2017-01-18 22:36
239 查看
继承
一个类从另一个类获取成员变量和成员函数的过程;
被继承的类称为父类或者基类,继承的类称为子类或者派生类;
继承的语法:
class 派生类的名:[继承方式] 基类名{
派生类的成员;
};
继承的方式: public ,private,protect,默认是private;
public成员可以通过对象访问,private只能通过内部函数访问;
protected:也不能通过对象访问;
继承的时候,protected成员可以在派生类中使用,基类的private不能在派生类中使用;
继承的方式:
1.public继承:
基类中public成员在派生类中还是public属性;
基类中protect成员在派生类中protected属性;
.....private在派生类中不能使用;
2.protected继承
基类中public成员在派生类中为protected属性;
.....protected.............protected.....;
.....private在派生类中不能使用;
3. private继承
基类中public成员在派生类中为private属性;
.....protected..............private....;
.....private在派生类中不能使用;
在派生类中访问基类的private成员的唯一方法就是借助基类的非private成员函数;
如果没有这样的成员函数则无法访问;
4, 改变访问权限 using
使用using改变基类成员在派生类中的访问权限;
public改成private, private改成public
存在问题: 在派生类中无法访问基类中private成员,如何用using修改,编译的时候报错;
#include<iostream>
using namespace std;
//基类People
class People{
public:
void show();
protected:
char *m_name;
int m_age;
};
void People::show(){
cout<<m_name<<"的年龄是"<<m_age<<endl;
}
//派生类Student
class Student: public People{
public:
void learning();
public:
using People::m_name; //将private改为public
using People::m_age; //将private改为public
float m_score;
private:
using People::show; //将public改为private
};
void Student::learning(){
cout<<"我是"<<m_name<<",今年"<<m_age<<"岁,这次考了"<<m_score<<"分!"<<endl;
}
int main(){
Student stu;
stu.m_name = "小明";
stu.m_age = 16;
stu.m_score = 99.5f;
// stu.show(); //compile error
stu.learning();
return 0;
}
一个类从另一个类获取成员变量和成员函数的过程;
被继承的类称为父类或者基类,继承的类称为子类或者派生类;
继承的语法:
class 派生类的名:[继承方式] 基类名{
派生类的成员;
};
继承的方式: public ,private,protect,默认是private;
public成员可以通过对象访问,private只能通过内部函数访问;
protected:也不能通过对象访问;
继承的时候,protected成员可以在派生类中使用,基类的private不能在派生类中使用;
继承的方式:
1.public继承:
基类中public成员在派生类中还是public属性;
基类中protect成员在派生类中protected属性;
.....private在派生类中不能使用;
2.protected继承
基类中public成员在派生类中为protected属性;
.....protected.............protected.....;
.....private在派生类中不能使用;
3. private继承
基类中public成员在派生类中为private属性;
.....protected..............private....;
.....private在派生类中不能使用;
在派生类中访问基类的private成员的唯一方法就是借助基类的非private成员函数;
如果没有这样的成员函数则无法访问;
4, 改变访问权限 using
使用using改变基类成员在派生类中的访问权限;
public改成private, private改成public
存在问题: 在派生类中无法访问基类中private成员,如何用using修改,编译的时候报错;
#include<iostream>
using namespace std;
//基类People
class People{
public:
void show();
protected:
char *m_name;
int m_age;
};
void People::show(){
cout<<m_name<<"的年龄是"<<m_age<<endl;
}
//派生类Student
class Student: public People{
public:
void learning();
public:
using People::m_name; //将private改为public
using People::m_age; //将private改为public
float m_score;
private:
using People::show; //将public改为private
};
void Student::learning(){
cout<<"我是"<<m_name<<",今年"<<m_age<<"岁,这次考了"<<m_score<<"分!"<<endl;
}
int main(){
Student stu;
stu.m_name = "小明";
stu.m_age = 16;
stu.m_score = 99.5f;
// stu.show(); //compile error
stu.learning();
return 0;
}
相关文章推荐
- PAT甲级1084
- c++ 对一个5位数的任意整数,求出其降序数
- C++对C的函数的扩展==》内联函数
- C++读取TXT文件问题,求高手解决,急。。。
- C/C++轻松实现文件下载
- C语言 常用的宏定义
- C++文件读写
- C++学习第一课
- PAT甲级1095
- 一维码Code 128简介及其解码实现(zxing-cpp)
- 一维码Code 128简介及其解码实现(zxing-cpp)
- vs编译gtest
- 一维码Code 93简介及其解码实现(zxing-cpp)
- 一维码Code 93简介及其解码实现(zxing-cpp)
- 【C++】学习笔记二十七——读取数字的循环
- c++备忘1
- CodeBlocks中常用的一些快捷键
- [c/c++]C中的三元运算
- 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
- c语言------makefile的创建和使用