基类成员在派生类中的访问权限不得高于继承方式中指定的权限。例如,当继承方式为 protected 时,那么基类成员在派生类中的访问权限最高也为 protected,高于 protected 的会降级为 protected,但低于 protected 不会升级。再如,当继承方式为 public 时,那么基类成员在派生类中的访问权限将保持不变。

也就是说,继承方式中的 public、protected、private 是用来指明基类成员在派生类中的最高访问权限的。

2) 不管继承方式如何,基类中的 private 成员在派生类中始终不能使用(不能在派生类的成员函数中访问或调用)。

3) 如果希望基类的成员能够被派生类继承并且毫无障碍地使用,那么这些成员只能声明为 public 或 protected;只有那些不希望在派生类中使用的成员才声明为 private。

4) 如果希望基类的成员既不向外暴露(不能通过对象访问),还能在派生类中使用,那么只能声明为 protected。

注意,我们这里说的是基类的 private 成员不能在派生类中使用,并没有说基类的 private 成员不能被继承。实际上,基类的 private 成员是能够被继承的,并且(成员变量)会占用派生类对象的内存,它只是在派生类中不可见,导致无法使用罢了。private 成员的这种特性,能够很好的对派生类隐藏基类的实现,以体现面向对象的封装性。

C++的protected相关推荐

  1. C++ 笔记(16)— 类和对象(类定义、类实例对象定义、访问类成员、类成员函数、类 public/private/protected 成员、类对象引用和指针)

    1. 类的定义 类定义是以关键字 class 开头,后跟类的名称.并在它后面依次包含类名,一组放在 {} 内的成员属性和成员函数,以及结尾的分号. 类声明将类本身及其属性告诉编译器.类声明本身并不能改 ...

  2. 虚拟函数是否应该被声明仅为private/protected?

    问题导入  我想对于大家来说,虚拟函数并不能算是个陌生的概念吧.至于怎么样使用它,大部分人都会告诉我:通过在子类中重写(override)基类中的虚拟函数,就可以达到OO中的一个重要特性--多态(po ...

  3. c++中的public,protected,private

    在C++的类定义中,可以用访问控制修饰符public,private或protected来描述对类成员的访问限制.默认为private. public:访问不受限制 private:只能在本类和友元的 ...

  4. C++中 public,protected, private 访问标号小结

    第一:private, public, protected 访问标号的访问范围. private: 只能由1.该类中的函数.2.其友元函数访问. 不能被任何其他访问,该类的对象也不能访问. prote ...

  5. 【C++】多态问题:基类调用子类的protected或者private函数

    1.问题描述 如果在基类中虚函数是public,子类中重载时标记为protected或者private函数,是否还能访问这个函数? 答案是: 基类指针指向子类时,可以访问,并且访问的是子类重载后的函数 ...

  6. java 反射 protected_Java反射机制设置对象里的private、protected属性值

    public class ReflectUtil { private ReflectUtil() { } /** * 直接设置对象属性值,无视private/protected修饰符,不经过sette ...

  7. 深入理解C++中public、protected及private用法

    深入理解C++中public.protected及private用法 这篇文章主要介绍了C++中public.protected及private用法,对于C++面向对象程序设计来说是非常重要的概念,需 ...

  8. 《Typecript 入门教程》 2、访问控制符:public、private、protected、readonly

    声明类的属性和方法时可以设置使用访问控制符,访问控制符设置类的属性和方法能不能在类的外部被访问 1. 默认为 public,使用public定义的属性和方法在类的内部和外部都可以访问 2. priva ...

  9. java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...

    1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...

  10. 解决 yum时 Error: Protected multilib versions报错

    CentOS下一键安装OpenStack时,在进行到 yum update 时提示有几个错误,按照提示 yum update  --skip-broken 后,还有错误提示:Error: Protec ...

最新文章

  1. 人工智能在网络贷款中鲜为人知的事
  2. 重磅!AMD350亿美金收购赛灵思,「苏妈」终于出手啦!
  3. 怎样实现强人工智能?
  4. Google App Engine使用简介
  5. SSM整合之纯注解方式,注解实现事务,异常,与拦截器
  6. [贪心][前缀和] Jzoj P4256 平均数
  7. UI5 Control lazy load mechanism
  8. 5种常见信用卡还款方式对比
  9. Git之第三方托管oschina
  10. 嵌入式计算机的特点和应用,以下描述中,()不是嵌入式操作系统的特点。A.面向应用,可以进行裁剪和移植B.用 - 信管网...
  11. ubuntu搭建php开发环境记录
  12. 如何在现代C ++中实现经典排序算法?
  13. 经典公司小型局域网服务器架设方案
  14. 三、取消发布的WebService(删除一个发布成功的Web服务)
  15. python 终止程序代码 多线程_我想问一下,tkinter 做多线程爬虫,让他停止该怎么做 quit 和 exit 都是直接退出程序...
  16. SQL注入不完全思路与防注入程序
  17. 【计量经济学论文】近十年烟台港发展情况的计量分析(节选)
  18. Js判断数组中是否有某值
  19. SharePoint - CAML
  20. 致创业者:你死的太快,是因为做的太慢

热门文章

  1. Kafka提交offset机制
  2. kafka自动提交offset的设置理解
  3. 解决百度地图加载大量点卡顿
  4. 谈谈我对元宇宙的理解
  5. win10 配置 java8
  6. org.apache.catalina.core.StandardWrapperValve invoke的解决
  7. 小明的存钱计划 南阳acm54
  8. Boundary loss for highly unbalanced segmentation
  9. FreeSWITCH 呼叫两个座机并互联(ESL实现)
  10. Mol Plant |中科院微生物所郭惠珊组和中科院上海植物逆境中心段成国组合作揭示油菜生长与免疫动态调节的新机制...