#include <iostream>
#include <string>
using namespace std;
class parent
{
public:
parent(int var=-1)
{
m_npub=-1;
m_nptb=-1;
m_nprt=-1;
}
public:
int m_npub;
protected:
int m_nptb;
private:
int m_nprt;
};
class chil1:public parent
{
public:
int getpub()
{
return m_npub;
}
int getptb()
{
return m_nptb;
}
int getprt()
{
return m_prt;//errror
}
};
class child2:protected parent
{
public:
int getpub()
{
return m_npub;
}
int getptb()
{
return m_nptb;
}
int getprt()
{
return m_prt;//errror
}
};
class child3:private parent
{
int getpub()
{
return m_npub;
}
int getptb()
{
return m_nptb;
}
int getprt()
{
return m_prt;//errror
}
};
int main()
{
chil1 cd1;
child2 cd2;
child3 cd3;
int nvar=0;
cd1.m_npub=nvar;//公有继承可以访问父类的公有的成员
cd1.m_nptb=nvar;//error因为公有继承的方式下,保护成员可以被访问但是不可以被改变。
nvar=cd1.getptb();//right
cd2.m_npub=nvar;//保护继承的子类是不可以改变父类的公有成员
nvar=cd2.getpub();//是可以被访问
cd3.m_npub;//不可以访问
}
C++的三种继承方式详解
最新推荐文章于 2022-07-01 15:41:06 发布