class parent
{
public:
parent(int var=-1)
{
m_npub=var;
m_nptd=var;
m_nprt=var;
}
public:
int m_npub;
protected:
int m_nptd;
private:
int m_nprt;
};
class child1:public parent
{
public:
int getpub() {return m_npub;}
int getptd() {return m_nptd;}
int gerprt() {return m_nprt;}
//A
};
class child2:protected parent
{
public:
int getpub() {return m_npub;}
int getptd() {return m_nptd;}
int gerprt() {return m_nprt;}
//B
};
class child3:private parent
{
public:
int getpub() {return m_npub;}
int getptd() {return m_nptd;}
int gerprt() {return m_nprt;}
//C
};
int main()
{
child1 cd1;
child2 cd2;
child3 cd3;
int nVar=0;
cd1.m_npub=nVar;//D
cd1.m_nptd;//E
nVar=cd1.getptd();//F
cd2.m_npub;//G
nVar=cd2.getptd();//H
cd3.m_npub;//I
nVar=cd3.getptd();//J
}
基类的私有成员 ,派生类都不可访问 A,B,C 错
共有继承中,派生类对象可以直接访问公有成员,要访问保护成员要通过派生类成员函数
保护继承,只能通过派生类成员函数访问
私有继承,也只能访问派生类成员函数 EGI错