===================多重继承====================
#include <iostream>
using namespace std;
class Father
{
public:
void setA(int h){height = h;}
void showA(){cout<<"身高是:"<<height<<endl;}
private:
int height;
};
class Mother
{
public:
void setB(int w){weight = w;}
void showB(void){cout<<"体重:"<<weight<<endl;}
private:
int weight;
};
class Son:public Father,public Mother 多个类派生一个子类
{
public:
void setC(int a){age = a;}
void showC();//{showA();showB();cout<<"年纪:"<<age<<endl;}
private:
int age;
};
void Son::showC()
{
showA(),showB(),cout<<"年纪:"<<age<<endl; 逗号分隔
showA();showB();cout<<"年纪:"<<age<<endl; 分号分隔 都能成功运行
}
int main()
{
Son s;
s.setA(168);
s.setB(50);
s.setC(26);
s.showC();
return 0;
}
【派生权限】
若class Son:public Father,private Mother
则Father类的成员在子类中权限不变,即Father类中的共有/私有成员在Son中依旧是共有/私有成员
而Mother类中的成员在子类中全都变成了私有的,即Mother类中的私有成员,在Son中变成不可访问,
Mother类中的 public 和 protected 成员都变成了 private 成员
倘若是私有派生,要想访问父类Mother的成员,就必须在子类中写接口函数!
【C++ 类的继承,子类以及之类的对象 对父类成员函数的访问权限】
[http://blog.csdn.net/sergery/article/details/8100179#comments]
#include <iostream>
using namespace std;
class Father
{
public:
void setA(int h){height = h;}
void showA(){cout<<"身高是:"<<height<<endl;}
private:
int height;
};
class Mother
{
public:
void setB(int w){weight = w;}
void showB(void){cout<<"体重:"<<weight<<endl;}
private:
int weight;
};
class Son:public Father,private Mother
{
public:
void setC(int a){age = a;}
void showC(){showA();showB();cout<<"年纪:"<<age<<endl;}
void setb(int b){setB(b);} //接口函数
private:
int age;
};
int main()
{
Son s;
s.setA(168);
//s.setB(50); 私有继承Mother类,则子类对象不能直接访问
s.setb(50);
s.setC(26);
s.showC();
return 0;
}
C++学习 多重继承
最新推荐文章于 2024-08-29 09:27:00 发布