在一定条件下,不同类型的数据之间可以进行类型转换,如可以将整型数据赋给双精度型变量。在赋值之前,先把整型数据转换成双精度型数据,然后再把它赋给双精度型变量。这种不同类型数据之间的自动转换和赋值,称为赋值兼容。在基类和派生类对象之间也存有赋值兼容关系,基类和派生类对象之间的赋值兼容规则是指在需要基类对象的任何地方,都可以使用其子类对象来代替。
例如,下面声明两个类:
class Base //声明基类Base
{
...
};
class Derived:public Base//声明基类Base的公有派生类Derived
{
...
};
根据赋值兼容规则,在基类base的对象可以使用的任何地方,都可以用派生类Derived的对象来替代,但只能使用从基类继承来的成员。具体表现在下面几个方面:
1.派生类对象可以赋值给基类对象,即用派生类对象中从基类继承来的数据成员,逐个赋值给基类对象的数据成员。例如
Base b; //定义基类Base的对象b
Derived d; //定义基类Ba