public protect private继承

引自原来在CGD讨论的几点总结:
1. public继承被称为类型继承(type inheritance)。往往反映is-a关系。
2. protected继承基类的所有公有成员都成为派生类的protected成员。这意味着它们可以被后来从该类派生的类访问,但不能在层次结构之外被访问。
3. private继承被称为实现继承(implementation inheritance)。派生类提供自己的公有接口,重用基类的实现。 

 

数据成员的访问域变化:
1. public继承的话,原来父类的public ,protected成员继承到子类中,类型不变员
2. protected继承的话,原来父类的public ,protected成员继承到子类中,并成为protected类型成员
3. private继承的话,原来父类的public ,protected成员继承到子类中,并成为private类型成员

PS一下
理想情况下,是能不用public就不用,因为一旦public就引发一系列如client可以用base pointer去new inherit class,则dtor需要是virtual的问题
但大多数情况下都是public的情况,大家对此也比较熟悉,所以下面谈谈不常见的情况

在private inheritance时,如果不存在必须实现virtual method的情况下,推荐选择composition,避免了未来可能的multi inheritance导致出现的讨厌的菱形结构从而引发出现的C++阴暗面: virtual inheritance,即不要因为只是想少敲点代码而失去了良好的设计

protected和private区别在于:如果只是为了重用code,在不能composition的情况下则优先考虑private,除非派生类还会需要或是有可能会被其他类继承的话,才需要变成protected。

转载于:https://www.cnblogs.com/songQQ/archive/2009/08/26/1554700.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)

转自:Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题) - Hongkai_Ding - 博客园 0. 前言 这里直接用 cuda安装文件同时安装 NVIDIA 驱动和 CUDA,没有单独安装更高版本的 NVIDIA 驱动;此安装是在 Intel 集显下的图形…

一面微创题--字符串逆序输出

最近一直在等面试消息,都有点着急了,的确,还有太多不足,笔面之后的一面技术面,幸运地是在三个面试者中面试官留下了我,可是一句话又搞的我一点底都没了:“你别以为你通过了就怎么着,…

返回北京

6点15做311新街口转800到光明桥转800到医院7:40挂上号9:30叫到号,护士站调病例分诊大屏幕显示叫号,可到挂号处缴费。到一层影象预约中心预约,相同检查可合并。胸片预约可当时等候检查。一层牌号抽血。乘434方庄环岛南下,王沛肿瘤科…

C++中的强制转换

标准c中主要有四种强制转换类型运算符&#xff1a; const_cast&#xff0c;reinterpret_cast&#xff0c;static_cast&#xff0c;dynamic_cast等等。 1&#xff09;static_cast<T*>&#xff08;a&#xff09; 将地址a转换成类型T&#xff0c;T和a必须是指针、引用、算术…

SQL_经验碎片

这个帖子主要记录一些sql的学习经验转载于:https://www.cnblogs.com/SDJL/archive/2009/09/08/1562607.html

【转】Ubuntu 16.04 Nvidia驱动安装(run方式)

转自&#xff1a;Ubuntu 16.04 Nvidia驱动安装(run方式)_lihe的博客-CSDN博客 1.下载驱动程序 Nvidia驱动下载 https://www.geforce.cn/drivers/beta-legacy http://www.nvidia.cn/Download/index.aspx 根据显卡选择适用的驱动版本&#xff0c;下载完之后是一个名称为 NVIDIA…

volatile的作用

一个定义为volatile的变量是说这变量可能会被意想不到地改变&#xff0c;这样&#xff0c;编译器就不会去假设这个变量的值了。精确地说就是&#xff0c;优化器在用到这个变量时必须每次都小心地重新读取这个变量的值&#xff0c;而不是使用保存在寄存器里的备份。下面是volati…

2008R2Win7管理九DNS冗余和恢复

2008R2Win7管理九DNS冗余和恢复 本文介绍如何在ad中的主dns崩溃后快速利用备份dns将主dns恢复.以及在主dns完好的时候进行dns冗余备份 本文在file这台服务器上安装好dns角色来作为主dns的备份,安装角色的过程不在详细描述,略过.相信大家都知道了. 本问对拓扑图略有改动,故再次更…

预处理命令中的#和##

在c/c的程序设计中&#xff0c;有的时候不免要实现某些对象转换出相应名字字符串或两对象名直接相连的情况&#xff0c;这时候可采用宏定义中加入#和##分别实现相应功能。下面是摘抄的一段解释。 The # and ## preprocessor operators are used with the #define preprocessor …

【转】DICOM通讯(ACSE->DIMSE->Worklist)

转自&#xff1a;DICOM通讯&#xff08;ACSE-&#xff1e;DIMSE-&#xff1e;Worklist&#xff09; - 知乎 1 DICOM通讯概要介绍 DICOM通讯和TCP IP的设计原理别无二致。从用户数据到网络上传输数据的过程中&#xff0c;要经历多层协议处理&#xff0c;每经一层&#xff0c;就…

DipperRiver.Net通信协议设计

说明名称[长度,单位&#xff1a;字节]包结构Header[10]&#xff1a;包头Body[21?]&#xff1a;包体Header[10]协议头[1]:1字节长度,如0x07协议版本[1]&#xff1a;1字节长度,如0x01Body长度[4]:4字节长度的数字&#xff0c;即Body长度最大支持4G保留[4]&#xff1a;Body[25?]…

winCE改变字库方法

更新系统字库&#xff1a;例如要在 WinCE5.0 加入微软雅黑字体的支持 。 第一步&#xff1a;增加如下注册表 [HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/FontPath] "FontPath""// Windows " ; 字库文件所在目录 [HKEY_LOCAL_MACHINE/SYSTEM/GDI] "…

程序员九重镜界,很老的今天刚刚翻出来

今天下午翻电脑找到这个--程序员九重镜界。很旧的&#xff0c;呵呵。第一重&#xff1a; 在哪本电脑杂志上看见软件工程师这个职业介绍&#xff0c;或者走在大街上看见某某软件培训机构鼓吹培训完就能年薪10万的广告&#xff0c;有些羡慕那些编程序的&#xff0c;自己有些蠢蠢欲…

【转】dicom通讯的工作方式及dicom标准简介!!

转自&#xff1a;dicom通讯的工作方式及dicom标准简介 - assassinx - 博客园 本文主要讲述dicom标准及dicom通讯的工作方式。dicom全称医学数字图像与通讯 其实嘛就两个方面 那就是“存储”跟“通讯”。 文件数据组织方式 网络数据组织方式。文件数据组织方式就是解析静态的di…

XIP与HIVE

我们的Image主要由两部分组成&#xff1a;XIPKERNEL.bin和NK.bin,XIPKERNEL.bin中的东西就是那些WinCE中比较核心的又需要经常加载的一些程序和DLL文件&#xff0c;这些文件会被Boot Loader在刚启动的时候拷贝到RAM中去&#xff0c;这样就可以在RAM中XIP&#xff08;Excute in …

[Silverlight]16进制颜色转ARGB及Color转Int32

16进制色字符串转ARGB做Web的都喜欢用16进制字符串标识颜色&#xff0c;比如“#F5F5F5”这类的&#xff0c;自然这个到了Silverlight/WPF中就要用ARGB表示&#xff1a;“#FFF5F5F5”&#xff08;前两位标识Alpha&#xff0c;即透明度&#xff09;。这在XAML中没有任何问题&…

【转】DICOM通信 - PDU数据包(1)

转自&#xff1a;DICOM通信 - PDU数据包(1)_翼遥君的博客-CSDN博客 DICOM上层协议为DIMSE提供透明的网络数据传输服务&#xff0c;即以上层协议规定的协议数据单元传送接收DIMSE的命令流与数据流。上层协议中制定了上层服务以及协议数据单元(Protocol Data Unit&#xff0c;PD…

windows mobile 编译(生成镜像)提速

windows mobile 编译镜像总是让人难以忍受的耗时&#xff0c;当然我们不能每次修改一点东西就build All一次。 下面是自己工作中积累的【不同情况下使用的编译命令】来加速生成镜像的过程&#xff0c;不排除有错的可能&#xff0c;欢迎指正。 对于修改&#xff0c;一般可以分…

ASP.NET MVC + ADO.NET EF 项目实战(二):设计过程与设计工具

工欲善其事&#xff0c;必先利其器。好的工具能够成倍提升工作效率。ASP.NET MVC和ADO.NET EF也是因为其工具出色而受到欢迎。例如&#xff1a; MVC所提供的View模板工具&#xff1b; MVC所提供的View切换、向导工具&#xff1b; ADO.NET EF提供的模型设计工具&#xff1b; ADO…

【转】DICOM通信 - PDU数据包(2)

转自&#xff1a;DICOM通信 - PDU数据包(2)_翼遥君的博客-CSDN博客 DICOM通信-PDU数据包(1)博客中主要分析了DICOM通信协议的连接协商请求和连接协商应答。 在7个PDU数据包中还有5个数据包&#xff0c;从结构上来看&#xff0c;他们比协议的协商过程要简单明了一些。 这篇博客…