赋值兼容规则:在需要基类对象的任何地方,都可以使用
公有派生类的对象来替代,这时派生类对象得到了基类中除了构造函数、析构函数之外的成员。具体说来有以下几种情况:
(1)派生类的对象赋值给基类对象
(2)派生类的对象初始化基类的引用
(3)派生类对象的地址赋值给指向基类的指针
在替代之后,派生类的对象就可以作为基类的对象使用,但是只能使用从基类继承的成员。
在C++中虚函数是动态联编的基础,是实现多态性的重要形式。
实现动态联编的三个条件:
(1)说明虚函数
(2)满足赋值兼容规则
(3)虚函数是通过成员函数或者指针、引用来调用
不能声明虚构造函数,但是可以声明虚析构函数,基类的析构函数未析构函数,那么继承类的析构函数一定是虚析构函数,不管有没有使用关键字virtual