讲述C 中的C 基类
创始人
2024-06-21 13:11:54
0

C++语言中有一个很重要的特性:Private派生确保C++基类中的方法只能被派生类的对象的方法间接使用,而不能被外部使用,除非这些方法已经被重新定义,下面就进行详细说明。

继承是一个进程,通过继承,一个对象可以获得另一个对象的属性(包括函数),并可向其中加入属于自己的一些特征。作为C++语言的一种重要机制,用继承的方法可以自动为一个提供来自另一个的操作和数据结构。#t#

进而使程序设计人员在一个一般的的基础上很快建立一个新的,而不必从零开始设计每个。当一个被其他的继承时,被继承的称为基类,又称为父。继承其他属性的称为派生,又称为子

一般情况下,继承的进程起源于一个C++基类的定义,基类定义了其所有派生的公有属性。从本质上讲,基类具有同一集合中的公共属性,派生继承了这些属性,并且增加了自己特有的属性。从任何已存在的继承的实质就是建造新的派生

从一个基类派生的继承称为单继承,换句话说,派生只有一个直接C++基类。单继承声明语句的常用格式为:

  1. class 派生名: 访问控制关键字 基类名  
  2. {  
  3.   数据成员和成员函数声明  
  4. }; 

与此相对地,从多个基类派生的继承称为多继承或多重继承,也就是说,一个派生有多个直接基类。在某些面向对象的语言(如Java)中不支持间的多重继承而只支持单重继承,即一个至多只能有一个直接父,因此实现似的功能需要借助接口等其他机制。而在C++中提供了多重继承的语法支持,使得问题变得简单了许多。多重继承声明语句的常用格式为:

  1. class 派生名: 访问控制关键字 基类名1, 访问控制关键字 基类名2,...  
  2. {  
  3.   数据成员和成员函数声明  
  4. }; 

除了多重继承之外,一个派生继承多个基类还有一种方法,就是把派生作为基类再次供别的继承,产生多层次的继承关系。例如A派生B,B派生C,则称A是B的直接基类B是C的直接基类A是C的间接基类

的层次结构也叫做继承链。还是上面的例子,当建立C的对象时,A的构造函数***被调用,接下来被调用的是B的构造函数,***是C的构造函数。析构函数的调用顺序正好相反。当一个派生继承有层次的时,继承链上的每个派生必须将它需要的变量传递给它的基类

在继承声明语句中,访问控制关键字用于说明在基类定义中所声明的成员和成员函数能够在多大范围内被派生所访问。访问控制关键字可为public, private或protected。如果访问控制关键字为public。

则称派生C++基类公有继承,也称公有派生。如果访问控制关键字为private,则称派生C++基类私有继承,也称私有派生。现在笔者将公有继承和私有继承的具体区别列表如下。

通过上表,我们可以将两种派生的特点总结如下:

基类成员 基类private成员 基类public成员

派生方式

private public private public
派生成员 不可见 不可见 可见 可见
外部函数 不可见 不可见 不可见 可见

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...