一 概述
C++中有两种继承方式,单一继承和多重继承,只有一个基类的叫单一继承,拥有多个基类的叫多重继承
二 示例演示及结果输出
2.1 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| #include<iostream> using namespace std; class father { private: int tall; public: void setA(int a){tall=a;} void printA(){cout<<"身高="<<tall<<endl;} }; class mother { private: int weight; public: void setB(int b){weight=b;} void printB(){cout<<"体重="<<weight<<endl;} }; class son:public father,private mother { private: int age; public: void setC(int c){age=c;} void setb(int b){setB(b);} void printC(){printA(),printB(),cout<<"年龄="<<age<<endl;} }; int main() { son a; a.setA(55); a.setb(80); //a.setB(80); a.setC(12); a.printC();
return 0; }
|
2.2 输出结果
2.3 代码说明
- 以私有方式继承后,基类的私有成员变成不可访问,而公有成员和保护成员变成了私有,派生类中的成员想要访问它们,必须定义一个公有函数作为接口
- 以私有方式继承后,父类mother中的weight成员无法访问,同时,父类mother中的公有成员函数在派生类son中变成私有的,因此我们不能直接调用son类的私有成员函数setB();因此直接访问导致出错
- 我们需要在son子类中添加一个公有的setb()函数,并且该函数可以设置由父类mother继承来的数据成员weight的值