1.c++中继承有公有继承,保护继承,私有继承
定义个基类: #include<iostream> using namespace std; class Base { public: void display() { cout《"huang"《endl; } protected: int x; private: int y; }; 定义一个派生类: 公有继承:派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有和保护成员, 基类的公有成员和保护成员作为派生类的成员时,保持其原有状态 class A:public Base { public: void print() { cout《"liglog"《endl; display();//派生类内部可以访问基类的公有成员 x=0;//派生类内部中可以访问基类的保护成员 cout《x《endl; //y=1;//派生类内部都不可访问基类的私有成员 //cout《y《endl; } 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; }; 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; } 哪里不对的,指点指点,别指指点点。 转自:http://blog.csdn.net/mai0net/article/details/7431322 |
|