三种继承方式的区别

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错 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值