讲述C++中的C++基类

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

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

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

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

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

class 派生类名: 访问控制关键字 基类名  


{  


  数据成员和成员函数声明  


}; 

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

class 派生类名: 访问控制关键字 基类名1, 访问控制关键字 基类名2,...  


{  


  数据成员和成员函数声明  


}; 

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

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

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

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

相关推荐