C++ public、protected、private 继承方式的区别
访问修饰符 public、protected、private,无论是修饰类内成员(变量、函数),还是修饰继承方式,本质上实现的都是可见性的控制。
Difference between private, public, and protected inheritance
class A {
public: int x;
protected: int y;
private: int z;
};class B : public A {// x is public// y is protected// z is not accessible from B
};class C : protected A {// x is protected// y is protected// z is not accessible from C
};class D : private A // 'private' is default for classes
{// x is private// y is private// z is not accessible from D
};
- 需要说明的是,类 B、C、D 的内存结构中均包含
x, y, z
(继承而来的成员),只是访问权限的不同罢了; - protected 修饰类内的成员,表示该成员仅对该类及其派生类可见;
- private 继承(class D : private A )使得所有成员都变为 private(父类中的 private 成员对子类不可见,哪怕是 public 继承),其子类均可不见,也即再有新的派生类继承 class D,成员函数的重写就失去了意义;
C++ public、protected、private 继承方式的区别相关推荐
- C++ (public, protected, private继承)
http://thinkinginmylife.spaces.live.com/blog/cns!E44140D5E07BEC07!137.entry 我转~~~C++5(public, protec ...
- C++类的继承与多重继承的访问控制【protected,private继承方式】
在前面的练习中我们一直在使用public的继承方式,即共有继承方式,对于protected和private继承方式,即保护继承与私有继承方式我们并没有讨论. 对于单个类来说,讨论保护继承与私有继承的区 ...
- C++ Public, Protected, Private
当private,public,protected单纯的作为一个类中的成员权限设置时: private: 只能由该类中的函数.其友元函数访问,不能被任何其他访问,该类的对象也不能访问. protect ...
- php protected 的继承,14 PHP 类的继承 [public protected private] parent 构造方法 析构方法 重写 最终类和方法 设计模式...
类的继承 简单理解: 某个类A具有某些特征,另一个类B,也具有A类的所有特征,并且还可能具有自己的更多的一些特征,此时,我们就可以实现:B类使用A的特征信息并继续添加自己的一些特有特征信息. 基本概念 ...
- C++ 中的三种继承public , protected, private
三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...
- C++中的三种继承public,protected,private详细解析
我们已经知道,在基类以private方式被继承时,其public和protected成员在子类中变为private成员.然而某些情况下,需要在子类中将一个或多个继承的成员恢复其在基类中的访问权限 三种 ...
- public protect private继承
引自原来在CGD讨论的几点总结: 1. public继承被称为类型继承(type inheritance).往往反映is-a关系. 2. protected继承基类的所有公有成员都成为派生类的prot ...
- C++类中的访问权限问题---public/protected/private
派生类继承了基类的全部数据成员和除了构造.析构函数之外的全部成员函数,但是这些成员的访问属性在派生的过程中通过继承方式可以来调整. 第一:private,public,protected方法的访问范围 ...
- public/protected/private简介
public/protected/private简介 #include <IOSTREAM> using namespace std; class A{ public: A(int i_, ...
最新文章
- 实现一个队列,使得push_rear(), pop_front() 和get_min()的时间复杂度为O(1)
- linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好
- 7月10日任务 添加自定义监控项目、配置邮件告警、测试告警、不发邮件的问题处理...
- 足不出户,游遍七大洲,不可错过的14部地理纪录片!
- PyTorch中的torch.nn.Parameter() 详解
- 谷歌浏览器怎么设置字体 chrome默认字体设置方法
- stm32端口复用和重映射
- 们--加强菲波那切数列
- 如何使用Wondershare PDFelement制作PDF文件
- 克隆的仓库 设置全局https协议转换成git协议,加快拉取速度(git)
- MATLAB图像的读取和显示
- Windows10性能优化设置
- PHP教程环境--环境搭建
- 虚短”“虚断”两板斧,搞定运算放大器 11张大图详(转)感觉特别有用 转过来收藏...
- 转《七年之前和七年之后》-祭奠高考
- 2023华为od面经~ (笔试 HR资面 技术面 一面 二面 综面)
- 基因测序技术发展历史及一、二、三代测序技术原理和应用
- 浏览器缓存Cache
- php实现选择不同字段查询,laravel 实现根据字段不同值做不同查询
- 设备安全:防火墙总结(1)
热门文章
- php 判断赋值 简写,PHP IF 判断简写
- php mysql调用crontab_PHP中如何实现crontab代码
- arrays中copyof复制两个数组_Core Java - Arrays
- android获取上下文对象,如何在Android服务类中获取上下文
- 第5章 C++内存模型和原子类型操作
- CDH页面中Oozie的调度告警邮箱设置
- 配置多台机器SSH相互通信信任
- Hadoop与Spark的集群复制
- Spark利用(idea+maven+scala)创建wordcount打包jar并在spark on yarn上运行——Spark的开发
- Python数据结构实战——队列(Queue)