纠结的东西:

private,public,protected方法的访问范围.(public继承下)
private: 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问. 
protected: 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 
public: 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问
注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数

A.在无继承的情况下,类内部可以随意访问,即使是private;类外部无法访问protected/private成员 .

B.在有继承的情况下,

       (先确定类继承方式,

        再确定继承后子类的新成员属性,

        最后确定子类内部/外部的访问权限:!!!此时即使是在子类的内部也不能访问父类的private

         )

1.若是public继承的话,父类的public/protected/private属性继承到子类时,均不会变化(新成员)

              在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)

              在子类外部访问时,无法访问子类的新成员protected/private

2.若是protected继承的话,父类的public/protected/private属性继承到子类时,会变化为(新成员)protected/protected/private

              在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)

              在子类外部访问时,无法访问子类的新成员protected/private

3.若是private继承的话,父类的public/protected/private属性继承到子类时,会变化为(新成员)private/private/private

              在子类内部访问时,无法访问父类的private(对比:在无继承时,类内可随便访问)

              在子类外部访问时,无法访问子类的新成员protected/private

第五:保护继承与私有继承

         从上面的结果来看,私有继承和保护继承作用完全一样。仔细一想其实还是有区别,区别是如果派生类再一次去派生其它类时,对于刚才的私有继承来说,再派生的类将得不到任何成员。而对于刚才的保护继承,仍能够得到基类的公有和保护成员。

  A类(基类) B类(A的派生类) C类(B的派生类)
公有继承 公有成员 公有成员 公有成员
私有成员 (无) (无)
保护成员 保护成员 保护成员
私有继承 公有成员 私有成员 (无)
私有成员 (无) (无)
保护成员 私有成员 (无)
保护继承 公有成员 保护成员 保护成员
私有成员 (无) (无)
保护成员 保护成员 保护成员

C++类中的访问权限问题的更多相关文章

  1. (转)浅析Java中的访问权限控制

    原文地址: http://www.cnblogs.com/dolphin0520/p/3734915.html 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下 ...

  2. 浅析Java中的访问权限控制

    浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但 ...

  3. Java中的访问权限控制

    Java提供了public, private, protected 三个访问权限修饰词,提供了以下四种访问权限控制机制: 1.包访问权限: 2.Public访问权限: 3.Private访问权限: 4 ...

  4. CPP/类/成员函数访问权限2

    // main.cpp // OOL // Created by mac on 2019/4/4. // Copyright © 2019年 mac. All rights reserved. // ...

  5. Java语言中的访问权限修饰符

    一个Java应用有很多类,但是有些类,并不希望被其他类使用.每个类中都有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用.如何能做到访问控制呢?就需要使用访问权限修饰符. Java语 ...

  6. 在client类中设置访问属性 address,business和individua

    php 5.4中的traits,是新引入的特性,中文还真不知道如何准确翻译好.其实际的目的, 是为了有的场合想用多继承,但PHP又没多继承 ,于是就发明了这样的一个东西. Traits可以理解为一组能 ...

  7. C++:调整基类成员在派生类中的访问属性的其他方法(同名成员和访问声明)

    4.3 调整基类成员在派生类中的访问属性的其他方法 4.3.1 同名函数 在定义派生类的时候,C++语言允许在派生类中说明的成员与基类中的成员名字相同,也就是 说,派生类可以重新说明与基类成员同名的成 ...

  8. Effective Java 第三版——16.在公共类中使用访问方法而不是公共属性

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  9. 3.3 C++改变基类成员在派生类中的访问属性

    参考:http://www.weixueyuan.net/view/6360.html 总结: 使用using声明可以改变基类成员在派生类中的访问属性. private: using book::se ...

随机推荐

  1. AMD K7以来核心架构一览表

    转载或拿走使用请注明出处,谢谢! 注:K10以前AMD的CPU型号主要用PR值标称,故此表中未表示其准确型号

  2. jquery开发表格插件项目之知识点累积 二

    $.addClass() 增加样式 $.removeClass() 去除样式 $.toggleClass() 单击增加样式,再单击取消样式 $.hasClass() 判断是否存在样式,存在返回true ...

  3. BZOJ 3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 动态规划

    3400: [Usaco2009 Mar]Cow Frisbee Team 奶牛沙盘队 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=34 ...

  4. Gym 100646 Problem E: Su-Su-Sudoku 水题

    Problem E: Su-Su-Sudoku/center> 题目连接: http://codeforces.com/gym/100646/attachments Description By ...

  5. OpenVPN相同证书不同客户端设置不同静态IP的问题

    无解!只能老老实实的使用不同证书不同客户端实现设置不同的静态IP.OpenVPN设置静态IP是根据证书名设置的,不能是登录名,无效. 无解! 无解!

  6. excel宏整理

    工作以后发现excel很强大,用好excel已经成功工作中很重要的一部分内容,最近写了一些宏, 整理如下: 根据excel生成sql脚本的sc_template Sub GenSCTemplateFi ...

  7. .NET Out Of Memory Exception - Used 1.3GB but have 16GB installed

    I am getting an Out Of Memory exception in my c# application when the memory usage for the applicati ...

  8. mac 刻录ISO系统盘

    今天本本系统坏了,手头上又没有U盘PE工具,只有MAC和光驱,只好在MAC上下载系统ISO刻录,我是直接点ISO文件,右键刻录到光盘,刻录好之后放到本本上发现不能引导,再把光盘放回MAC上一看,光盘里 ...

  9. 【spring boot】【elasticsearch】spring boot整合elasticsearch,启动报错Caused by: java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8

    spring boot整合elasticsearch, 启动报错: Caused by: java.lang.IllegalStateException: availableProcessors ], ...

  10. Android4.1中BinderService的作用

    http://blog.csdn.net/lsdmx2016/article/details/8772583 Android4.1 中出现了一个新的类,BinderService,所有的Native ...