记C++类成员访问权限符二三事

系统 2147 0

1、对于虚拟函数,子类里的成员访问权限符可以和父类不同。即对于基类的函数func如果是public的,子类中它可以是private的。

 

    class Base  

{

public:

	Base();

	virtual ~Base();



public:

	virtual void func(void); // 公有



};



class Derived : public Base  

{

public:

	Derived();

	virtual ~Derived();



private:

	void func(void);  // 私有,和父类不同



};



	Base * pB = new Base();

	pB->func();



	pB = new Derived();

	pB->func();       // 正常访问



	Derived * pD = new Derived();

//	pD->func();  不能访问
  


2、“存取限制”不能解除“因多继承而得的members”的模棱两可的状态。原因:改变某个class member的可存取性,绝不应该连带改变程序的意义。

 

 

    class Base1 {

public:

    int doIt();

};



class Base2 {

private:

    int doIt(); // 不管这里是public,protected还是private,都会产生模棱两可

}



class Derived: public Base1, public Base2 {

}



Derived d;

int i = d.doIt(); // 错误,模棱两可
  


 

 

记C++类成员访问权限符二三事


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论