三种访问权限

public:可以被任意实体访问

protected:只允许子类及本类的成员函数访问

private:只允许本类的成员函数访问

三种继承方式

public 继承

protect 继承

private 继承

组合结果

基类中 继承方式 子类中

public & public继承 => public

public & protected继承 => protected

public & private继承 = > private

protected & public继承 => protected

protected & protected继承 => protected

protected & private继承 = > private

private & public继承 => 子类无权访问

private & protected继承 => 子类无权访问

private & private继承 = > 子类无权访问

由以上组合结果可以看出

1、public继承不改变基类成员的访问权限

2、private继承使得基类所有成员在子类中的访问权限变为private

3、protected继承将基类中public成员变为子类的protected成员,其它成员的访问 权限不变。

4、基类中的private成员不受继承方式的影响,子类永远无权访问。

此外,在使用private继承时,还存在另外一种机制:准许访问 。

我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员。然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限。

C++支持以两种方式实现该目的

方法一,使用using 语句,这是C++标准建议使用的方式

方法二,使用访问声明,形式为 base-class::member;, 位置在子类中适当的访问声明处。(注,只能恢复原有访问权限,而不能提高或降低访问权限)

c++ 中为什么要定义public protect private 三种访问权限?

有些我们需要给外面看的,也就是对外接口,那么就是public,如果没有,那么我们做的工作将是毫无意义的,(别人没法用)

如果我们不想让别人知道内部的实现细节,那么就是private,比如,我们这么:

public:

count()

{

  mycount();

}

private:

  mycount();

这样的,count是对外的接口,而实现的时候,我们不想让外面知道怎么实现的,就用private,防止它用mycount!

如果我们不想让别人知道,想让自己的孩子什么的知道(这里涉及到继承),那么就可以作为protected!

这样的话,private是自己私有的,protected是可以让孩子知道的,public是公开的!

转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html

C++ 中的三种继承public , protected, private相关推荐

  1. C++中的三种继承public,protected,private详细解析

    我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员.然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限 三种 ...

  2. C++中的三种继承public,protected,private(转)

    三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...

  3. [转]C++中的三种继承public,protected,private

    链接:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html

  4. php protected 的继承,14 PHP 类的继承 [public protected private] parent 构造方法 析构方法 重写 最终类和方法 设计模式...

    类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...

  5. C++类中的访问权限问题---public/protected/private

    派生类继承了基类的全部数据成员和除了构造.析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整. 第一:private,public,protected方法的访问范围 ...

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

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

  7. protect 继承_c++三种继承方式public,protect,private

    三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...

  8. 不同级别成员对应三种继承的结果:

    怎么解释呢? 首先,private,私有的,这是绝对的,不会受继承而变化,只对本类(即使是基类)可见. 剩下的public和 protected 成员,三种继承,2×3 = 6.私有继承在派生类中全为 ...

  9. C++继承机制(一)——基本语法、三种继承方式、继承哪些数据

    目录: C++继承机制(一)--基本语法.三种继承方式.继承哪些数据 C++继承机制(二)--继承中的构造和析构顺序.继承同名成员的处理方式 C++继承机制(三)--多继承.菱形继承.虚继承原理 本篇 ...

最新文章

  1. mysql实训报告_mysql数据库技术》实验报告.doc
  2. php数据采集类,一个数据采集类
  3. [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
  4. Hadoop视频教程6折 低达4.5折
  5. IO模型(epoll)--详解-03
  6. sea.js常用接口
  7. docker- 构建镜像:
  8. ACCESS常用数字类型的说明和取值范围
  9. 【视频云端SDK】关于安卓指令集的兼容,Library xxx.so not found
  10. android opengl教程
  11. html个人主页实验报告,HTML个人主页实验报告.docx
  12. Web前端大作业—— 饮食餐饮网站 咖啡网站pc端带轮播(5个页面)HTML+CSS+JavaScript 学生美食网页设计作品 学生餐饮文化网页模板
  13. Java实现 蓝桥杯 算法提高 三进制数位和
  14. UnExpected Error, Quitting
  15. kubernetes中证书生成
  16. Python数据挖掘:利用聚类算法进行航空公司客户价值分析
  17. 华为无线学习笔记--WLAN(无线)实验
  18. 2019河北单招计算机考试模拟试题,2019年河北单招文科数学模拟试题(一)【含答案】.docx...
  19. 基于PYTHON的科学占卜
  20. 武林外传显示服务器连接失败,武林外传手游服务器链接失败怎么回事_武林外传手游服务器链接失败如何解决_玩游戏网...

热门文章

  1. Spring_Bean的作用域---和使用外部属性文件
  2. Django的ModelForm
  3. 大道至简,阿里巴巴敏捷教练的电子看板诞生记
  4. ( ̄▽ ̄) 关于河北ETC记账卡的默认密码
  5. ftp列表错误,flashfxp列表错误,ftp无法列目录的解决方法
  6. keepalived+lvs(HA+LB)
  7. A summary of the post “How I explained OOD to my wife
  8. 关注信息安全认证培训
  9. javascript:window.showModalDialog缓存问题
  10. linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....