C++ 中的三种继承public , protected, private
三种访问权限
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相关推荐
- C++中的三种继承public,protected,private详细解析
我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员.然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限 三种 ...
- C++中的三种继承public,protected,private(转)
三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...
- [转]C++中的三种继承public,protected,private
链接:http://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html
- php protected 的继承,14 PHP 类的继承 [public protected private] parent 构造方法 析构方法 重写 最终类和方法 设计模式...
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- C++类中的访问权限问题---public/protected/private
派生类继承了基类的全部数据成员和除了构造.析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整. 第一:private,public,protected方法的访问范围 ...
- java 权限修饰符大小_Java中访问权限修饰符public protected private, 缺省默认权限的用法总结...
1.访问权限符: (1)public: 对于成员来说:任何其他类都可以访问它们,不管在同一个包中还是在另外的包中. 对于类来说: 也是一样. (2)friendly: 对于成员老说:如果一个类的成员没 ...
- protect 继承_c++三种继承方式public,protect,private
三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...
- 不同级别成员对应三种继承的结果:
怎么解释呢? 首先,private,私有的,这是绝对的,不会受继承而变化,只对本类(即使是基类)可见. 剩下的public和 protected 成员,三种继承,2×3 = 6.私有继承在派生类中全为 ...
- C++继承机制(一)——基本语法、三种继承方式、继承哪些数据
目录: C++继承机制(一)--基本语法.三种继承方式.继承哪些数据 C++继承机制(二)--继承中的构造和析构顺序.继承同名成员的处理方式 C++继承机制(三)--多继承.菱形继承.虚继承原理 本篇 ...
最新文章
- mysql实训报告_mysql数据库技术》实验报告.doc
- php数据采集类,一个数据采集类
- [刷题]算法竞赛入门经典 3-10/UVa1587 3-11/UVa1588
- Hadoop视频教程6折 低达4.5折
- IO模型(epoll)--详解-03
- sea.js常用接口
- docker- 构建镜像:
- ACCESS常用数字类型的说明和取值范围
- 【视频云端SDK】关于安卓指令集的兼容,Library xxx.so not found
- android opengl教程
- html个人主页实验报告,HTML个人主页实验报告.docx
- Web前端大作业—— 饮食餐饮网站 咖啡网站pc端带轮播(5个页面)HTML+CSS+JavaScript 学生美食网页设计作品 学生餐饮文化网页模板
- Java实现 蓝桥杯 算法提高 三进制数位和
- UnExpected Error, Quitting
- kubernetes中证书生成
- Python数据挖掘:利用聚类算法进行航空公司客户价值分析
- 华为无线学习笔记--WLAN(无线)实验
- 2019河北单招计算机考试模拟试题,2019年河北单招文科数学模拟试题(一)【含答案】.docx...
- 基于PYTHON的科学占卜
- 武林外传显示服务器连接失败,武林外传手游服务器链接失败怎么回事_武林外传手游服务器链接失败如何解决_玩游戏网...
热门文章
- Spring_Bean的作用域---和使用外部属性文件
- Django的ModelForm
- 大道至简,阿里巴巴敏捷教练的电子看板诞生记
- ( ̄▽ ̄) 关于河北ETC记账卡的默认密码
- ftp列表错误,flashfxp列表错误,ftp无法列目录的解决方法
- keepalived+lvs(HA+LB)
- A summary of the post “How I explained OOD to my wife
- 关注信息安全认证培训
- javascript:window.showModalDialog缓存问题
- linux脚本计算器加减乘除,用shell写一个简易计算器,可以实现加、减、乘、除运算,假如脚本名字为1.sh,执行示例:./1....