• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++关键字protected

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

我们已经接触了C++的两个关键字:public和private。public是公开的,而private是私有的。

在C++的类中,如果一个属性或方法被定义为public,那么这个属性或者方法可以被所有的类访问。如果一个属性或方法被定义为private,那么这个属性或者方法只能够被自己这个类访问,甚至子类也无法访问。

那么问题来了,子类如果每次访问父类的属性都要使用getter或setter方法,那么会很不方便。而且如果父类不提供getter和setter方法的话,那就没有办法访问了。如果我们想子类直接访问父类的属性或者方法,那么可以使用protected关键字。

它的使用方法和其他两个关键字一样:

class ClassName {
public:
    //public attributes or methods
protected:
    //protected attributes or methods
private:
    //private attributes or methods
};

这样一来,子类就可以直接访问父类的属性或方法而其他与父类无关的类无法直接访问。

所以我们也可以得知访问权限级别的顺序:public > protected > private

 

父类成员访问级别

 

public

proteced

private

public

public

proteced

private

proteced

proteced

proteced

private

private

private

private

Private

也就是说,当继承时,我们的格式是:

class ClassA: public ClassB {
    //...
};

那么ClassA中的所有属性和方法的访问权限和父类相同。

如果我们在继承时使用了protected:

class ClassA: protected ClassB {
    //...
};

那么ClassB中的public属性或者方法的访问权限就会变为protected,而其他的权限不变。

如果我们在继承时使用了private:

class ClassA: private ClassB {
    //...
};

那么ClassB中的所有属性或者方法的访问权限就会变为private。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap