定义个基类:
#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;
}
哪里不对的,指点指点,别指指点点。