private 成员和 protected 的区别和用法

也不知道应不应该算原创,这些内容几乎每本讲面向对象语言的书里面都有 ,只不过是长时间不用,忘记了,自己写一段代码验证一下,姑且就算原创吧~~
也没什么好多说的,就一段代码:

//  目的:试验基类中的 private 成员是否能被派生类访问
//  结果:基类中的 private 成员不能被派生类访问 
//  办法:若想让基类中的成员能够被派生类访问,而又不能让外界访问,用 protected 成员 

class  BaseClass  {                        // 基类
private:
    
int m_iPrivate;                        // private 成员 
protected:
    
int m_iProtected;                    // protected 成员 
public:
    
int GetPrivateMember() return m_iPrivate; }
    
int GetProtectedMember() return m_iProtected; } 
    BaseClass() 
{                        // 构造函数, 初始化成员 
        m_iPrivate = 0;
        m_iProtected 
= 0;
    }

}
;

class  DeriveClass :  public  BaseClass  {    // 派生类, 派生自 BaseClass 
public:
    
void fun() {
        
// m_iPrivate = 1;                // 错误, 派生类不能访问基类 private 成员
        m_iProtected = 1;                // 正确, 派生类可以访问基类 protected 成员
    }

}
;

int  main()  {
    BaseClass 
base;
    
// base.m_iPrivate;                    // 错误, private 成员外部不能访问
    
// base.m_iProtected;                // 错误, protected 成员外部不能访问
    base.GetPrivateMember();            // 正确, 通过 public 成员访问 private 成员 
    base.GetProtectedMember();            // 正确, 通过 public 成员访问 protected 成员 

    
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值