【c++ 回顾】protect 权限

编程入门 行业动态 更新时间:2024-10-22 08:17:52

【c++ 回顾】protect <a href=https://www.elefans.com/category/jswz/34/1771295.html style=权限"/>

【c++ 回顾】protect 权限

  1. 类似于private权限, protect的权限对于类的使用着来说是不可见的
  2. 类似与pubic权限,protect的权限对于基类的派生类和友元是可见的
  3. 无法通过派生类访问基类对象的protect的成员
    第三条就保证了无法通过派生类来绕过protect权限

例如

#include <iostream>class Base {
protected:int x;
};class Sneaky : public Base {void test1(Sneaky &sneaky) {sneaky.x = 0;}void test2(Base &base) {base.x = 0; // 不可以的。。}
};int main() {return 0;
}

第三条条款的另一种说法

如果member是直接定义在Y里面的protectedprivate成员,只有当XY相同,才能够访问。在这里,因为static_cast<Y&>(y)的类型是Y&XY不一样,所以答案自然是不能。

class Y
{
protected:int member;
};class X : public Y
{
public:void Method(X& y){&(static_cast<Y&>(y).member);}
};

更多推荐

【c++ 回顾】protect 权限

本文发布于:2024-02-05 10:33:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1744842.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:权限   protect

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!