您的位置:首页 > 其它

private 成员和 protected 的区别和用法

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


// 目的:试验基类中的 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;


}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: