C++面向对象程序设计(5)

2022/2/28 22:21:35

本文主要是介绍C++面向对象程序设计(5),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

五,继承与派生

C++中可重用性是通过“继承(inheritance)”这一机制来实现。

单继承:一个派生类只从一个基类派生。

多重继承:一个派生类有两个或多个基类。

派生类一般形式为:

class 派生类名 : [继承方式] 基类名    //继承方式默认为private

{派生类新增加的成员};

1,派生类成员的访问属性

公用继承

基类的公有成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。

私有继承

基类的公有成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有。

受保护的继承

基类的公有成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。

受保护成员的意思是:不能被外界引用,但可以被派生类的成员引用。

2,派生类的构造函数和析构函数

构造函数的主要作用是对数据成员初始化。

派生类构造函数一般形式为:

派生类构造函数名 (总参数表):基类构造函数名(参数表),子对象名(参数表)

{派生类中新增数据成员初始化语句}

3,多重继承

多重继承派生类的构造函数:

派生类构造函数名(总参数表):基类1构造函数(参数表),基类2构造函数(参数表),

                                                        基类3构造函数(参数表列)

{派生类中新增数据成员初始化语句}

多重继承引发的二义性问题

虚基类

C++提供虚基类(virtual base class)的方法,使得在继承间接共同基类时只保留一份成员。

声明虚基类一般形式:

class 派生类名:virtual 继承方式 基类名

4,基类与派生类的转换

基类和派生类对象之间有赋值兼容关系。具体表现在以下几个方面:

1,派生类对象可以向基类对象赋值。可以用子类对象对其基类对象赋值,但不能反过来。

2,派生类对象可以替代基类对象向基类对象的引用进行赋值或初始化。

3,如果函数的参数是基类对象或基类对象的引用,相应的实参可以用子类对象。

4,派生类对象的地址可以赋给指向基类对象的指针变量,也就是说,指向基类对象的指针变量也可以用来指向派生类对象。

5,继承与组合

类的组合:在一个类中以另一个类的对象作为数据成员



这篇关于C++面向对象程序设计(5)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程