C++中可重用性是通过“继承(inheritance)”这一机制来实现。
单继承:一个派生类只从一个基类派生。
多重继承:一个派生类有两个或多个基类。
派生类一般形式为:
class 派生类名 : [继承方式] 基类名 //继承方式默认为private
{派生类新增加的成员};
基类的公有成员和保护成员在派生类中保持原有访问属性,其私有成员仍为基类私有。
基类的公有成员和保护成员在派生类中成了私有成员,其私有成员仍为基类私有。
基类的公有成员和保护成员在派生类中成了保护成员,其私有成员仍为基类私有。
受保护成员的意思是:不能被外界引用,但可以被派生类的成员引用。
构造函数的主要作用是对数据成员初始化。
派生类构造函数一般形式为:
派生类构造函数名 (总参数表):基类构造函数名(参数表),子对象名(参数表)
{派生类中新增数据成员初始化语句}
多重继承派生类的构造函数:
派生类构造函数名(总参数表):基类1构造函数(参数表),基类2构造函数(参数表),
基类3构造函数(参数表列)
{派生类中新增数据成员初始化语句}
C++提供虚基类(virtual base class)的方法,使得在继承间接共同基类时只保留一份成员。
声明虚基类一般形式:
class 派生类名:virtual 继承方式 基类名
基类和派生类对象之间有赋值兼容关系。具体表现在以下几个方面:
1,派生类对象可以向基类对象赋值。可以用子类对象对其基类对象赋值,但不能反过来。
2,派生类对象可以替代基类对象向基类对象的引用进行赋值或初始化。
3,如果函数的参数是基类对象或基类对象的引用,相应的实参可以用子类对象。
4,派生类对象的地址可以赋给指向基类对象的指针变量,也就是说,指向基类对象的指针变量也可以用来指向派生类对象。
类的组合:在一个类中以另一个类的对象作为数据成员