1.c++中继承有公有继承,保护继承,私有继承
定义个基类:
- #include
- using namespace std;
- class Base
- {
- public:
- void display()
- {
- cout<<"huang"<
- }
- protected:
- int x;
- private:
- int y;
- };
定义一个派生类:
公有继承:派生类的对象可以访问基类中的公有成员,派生类的成员函数可以访问基类的公有和保护成员,
基类的公有成员和保护成员作为派生类的成员时,保持其原有状态
- class A:public Base
- {
- public:
- void print()
- {
- cout<<"liglog"<
- 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;
-
- };
- 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;
- }
阅读(1101) | 评论(0) | 转发(0) |