赋值兼容规则是指在需要基类对象的任何地方都可以使用公有派生类的对象来替代。通过公有继承,派生类得到了基类中除构造函数、析构函数之外的所有成员,而且所有成员的访问控制属性也和基类完全相同。这里所说的替代包含以下情况:
- 派生类的对象可以赋值给基类使用
- 派生类的对象可以初始化基类的引用
- 派生类对象的地址可以赋给指向基类的指针
例如:
class A
{
....
};
class B:public A
{
.....
};
A a,*pa;
B b;
- 派生类对象可以赋值给基类对象,即用派生类对象中从基类继承来的成员,逐个赋值给基类对象的成员:a=b
- 派生类对象也可以赋值给基类对象的引用:A &aa=b
- 派生类的地址赋值给指向基类的指针:pa=&b