标签:space col mes using pre print 基类 ++ class
1.c++中继承有公有继承,保护继承,私有继承
#include using namespace std; class Base { public: void display() { cout<<"111212"<<endl; } protected: int x; private: int y; };
class A:public Base { public: void print() { cout<<"liglog"<<endl; display(); //派生类内部可以访问基类的公有成员 x=0; //派生类内部中可以访问基类的保护成员 cout<< //y=1; //派生类内部都不可访问基类的私有成员 //cout<< } protected: int Ax; private: int Ay; };
保护继承:派生类的成员函数可以访问基类的公有成员和保护成员,以及基类的公有成员和保护成员作为派生类的保护成员,保护成员还可被派生类的子类访问
class B:protected Base { public: void print() { cout<<"shi"<<endl; display();//派生类内部可访问基类的公有成员 x=1;//派生类内部可访问基类的保护成员 cout<<x<<endl; // y=1;//派生类内部不可访问基类的私有成员 // cout<<y<<endl; } protected: int Bx; private: int By; };
私有继承:基类的公有成员和保护成员作为派生类的私有成员,不能被派生类的子类访问,即不能被往下继承。
class C:private Base { public: void print() { cout<<"wo"<<endl; display();//派生类内部可访问基类的公有成员 x=1; //派生类内部可访问基类的保护成员 cout<<x<<endl; // y=1; //派生类内部不可访问基类的私有成员 // cout<<y<<endl; } protected: int Cx; private: int Cy; };
main函数:
int main() { // 公有继承部分 A aObject; aObject.display();//派生类外部可以访问基类的公有成员 aObject.print(); // aObject.x=1;//派生类外部不可访问基类的保护成员 // aObject.y=3;//派生类外部不可访问基类的私有成员 //保护继承部分 B bObject; // bObject.display();//派生类外部不可访问基类的公有成员 bObject.print(); // bObject.x=1;//派生类外部不可访问基类的保护成员 // bObject.y=1;//派生类外部不可访问基类的私有成员 //私有继承部分 C cObject; // cObject.display();//派生类外部不可访问基类的公有成员 cObject.print(); // cObject.x=1;//派生类外部不可访问基类的保护成员 // cObject.y=1;//派生类外部不可访问基类的私有成员 return 0; }
标签:space col mes using pre print 基类 ++ class
原文地址:https://www.cnblogs.com/yiweicheng123/p/11667680.html