C++的继承方式分为 公用继承,私有继承,保护继承
建立一个派生类时,将基类的继承方式指定为public,则为公用继承。
1 公用继承时,基类的公用成员和保护成员仍然为公用成员和保护成员的属性。
2 基类的私有成员,仍为基类的私有成员,只能用基类的成员函数去引用它,所以派生类的成员函数不能引用基类的私有成员。
基类的访问属性 | 继承方式 | 在派生类中的访问属性 |
private | 公用继承 | 不可访问 |
public | 公用继承 | public |
protected | 公用继承 | protected |
附上课本上的小例子,切勿眼高手低
#include <iostream>
#include <string.h>
using namespace std;
class Student //声明基类
{
public: // 公用
void get_value()
{
cin>>num>>name>>sex;
}
void display()
{
cout<<"num: "<<num<<endl;
cout<<"name: "<<name<<endl;
cout<<"sex: "<<sex<<endl;
}
private: //私有
int num;
string name;
char sex;
};
class Student1:public Student //声明派生类
{
public:
void get_value_1()
{
get_value(); //公用继承,所以可以调用基类的公用函数
cin>>age>>addr;
}
void display_1()
{
display(); //公用继承,所以可以调用基类的公用函数
cout<<"age= "<<age<<endl;
cout<<"addr= "<<addr<<endl;
}
private:
int age;
string addr;
};
int main()
{
Student1 stud;
stud.get_value_1();
stud.display_1();
return 0;
}
虽然派生类的成员函数不能访问基类的私有成员,但是可以通过访问基类的公用成员函数,而进一步的输出基类私有成员的值,如display_1()函数调用display函数。