C++公有、私有、保护继承的关系
- 公有继承(public)
- 私有继承(private)
- 保护继承(protected)
公有继承(public)塑模出is-a关系
适用于基类的每一件事情一定适用于派生类,每一个通过公有继承而来的派生类对象也是一个基类对象。
私有继承(private)意味着implemented-in-terms-of(根据某物实现出)
当一个class B private继承 class A 用意是采用class A 已经拥有的某些特性,而不是两个类之间存在任何观念上的关系。
主要体现在一个子类对象不能转型为父类对象,从父类继承的所有成员都成为子类的私有成员。
私有继承一般可以用复合来替代。复合可以塑模出has-a或implemented-in-terms-of(根据某物实现出)两种关系。当派生类
需要访问protected 的基类成员或者重新定义virtual函数,应该用private继承比较合理。
复合区别去公有继承(is-a),在应用领域体现的是has-a,在实现领域体现的是implemented-in-terms-of(根据某物实现出)。
例如:一辆车有车轮,发动机,车身等组成,这就是has-a的关系;一个栈我们用两个队列去实现这就是implemented-in-terms-of(根据某物实现出)。
转载于:https://www.cnblogs.com/kiplove/p/7415244.html
C++公有、私有、保护继承的关系相关推荐
- 公有/私有/保护继承、overload/overwrite/override之间的区别
一.继承 C++很重要的一个特征就是代码重用.在C语言中重用代码的方式就是拷贝代码.修改代码.C++可以用继承或组合的方式来重用.通过组合或继承现有的的类来创建新类,而不是重新创建它们. 继承是使用已 ...
- 从零开始学C++之继承(一):公有/私有/保护继承、overload/overwrite/override之间的区别...
一.继承 C++很重要的一个特征就是代码重用.在C语言中重用代码的方式就是拷贝代码.修改代码.C++可以用继承或组合的方式来重用.通过组合或继承现有的的类来创建新类,而不是重新创建它们. 继承是使用已 ...
- C++中公有继承、保护继承、私有继承
就class之间的关系做一个简单的定义,继承base class的class,base class可以认为class都是自己的子女. 1.public:public表明该数据成员.成员函数是对所有用户 ...
- 关于C++中公有继承、私有继承、保护继承的讨论
一.文章来由 简单明了的理由,老生常谈但是没真正解决的问题,想搞清楚这个问题. 二.冗长的定义 我们先来看看这些冗长的定义: 公有继承: 当类的继承方式为公有继承时,基类的公有成员和保护成员的访问属性 ...
- 公有继承/私有继承/保护继承的区别
1.公有继承–public 公有继承时,对基类的公有成员和保护成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和保护成员,但是访问不了基类的私有成员.派生类的对象只能访问派生类的公有成员(包 ...
- C++公有继承,保护继承,私有继承的区别
1.公有继承–public 公有继承时,对基类的公有成员和保护成员的访问属性不变,派生类的新增成员可以访问基类的公有成员和保护成员,但是访问不了基类的私有成员.派生类的对象只能访问派生类的公有成员(包 ...
- 8.公有继承 保护继承 私有继承
一个子类继承父类时,可按照public.private和protected方式继承父类,每种继承方式的区别如下: 1) public继承方式 基类中所有public成员在派生类中为public属性: ...
- 公有继承,私有继承,保护继承的区别
一个子类继承父类时,可按照public.private和protected方式继承父类,每种继承方式的区别如下: 1) public继承方式 基类中所有public成员在派生类中为public属性: ...
- C++继承详解:共有(public)继承,私有(private)继承,保护(protected)继承
转自:http://www.cnblogs.com/qlwy/archive/2011/08/25/2153584.html C++继承:公有,私有,保护 公有继承(public).私有继承(priv ...
- c/c++入门教程 - 2.4.6 继承、公共继承、保护继承、私有继承、virtual虚继承(概念、语法、方式、构造和析构顺序、同名成员处理、继承同名静态成员处理、多继承语法、菱形继承、钻石继承)
目录 4.6 继承 4.6.1 继承的基本语法 4.6.2 继承方式 4.6.3 继承中的对象模型 4.6.4 继承中构造和析构顺序 4.6.5 继承同名成员处理方式 4.6.6 继承同名静态成员处理 ...
最新文章
- 论文被拒怎么办?(下)
- QT的QSGGeometry类的使用
- Android之在一个类里面注册Handler发送消息在另外一个类里面接收消息
- 使用数组操作解码YOLO Core ML对象检测(三)
- 【bzoj1742】[Usaco2005 nov]Grazing on the Run 边跑边吃草 区间dp
- python学习图解_大牛整理!Python学习方法和学习路线,看完茅塞顿开!
- 如何阻止 AcrobatPro DC自动更新升级?
- segger公司调试cortex-m内核出现hardfault的方法
- IOS逆向-静态分析
- Python 每日一记31相关性矩阵建立
- latex排版--插入符号数学公式常见问题
- 关闭极域电子教室文档
- subs php,nginx subs_filter对输出内容进行替换
- Android dex2oat命令参数解释
- inventor(2):设置单位,显示完整工具区/功能区,创建分割面
- FileIO - java
- jwt的token要存mysql吗_认证的token不存到数据库
- PIXEL C 未支持命令(remote: unsupported command)解决记录
- 计算机启动进入桌面非常慢,电脑开机加载桌面很慢的解决办法
- STC8H运行smallRTOS51操作系统(1)