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;//派生類內部可訪問基類的保護成員 www.2cto.com
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;
}
哪裡不對的,指點指點,別指指點點。
摘自 家裡蹲博客