虚拟继承
C++使用虚拟继承(Virtual Inheritance),
使得派生类如果继承基类多次,但只有一份基类的拷贝在派生类对象中。
虚拟继承的语法:
class
派生类: virtual
基类1,virtual 基类2,...,virtual 基类n{
...//派生类成员声明};
多重继承构造执行顺序:
首先执行虚基类的构造函数,多个虚基类的构造函数按照被继承的顺序构造;
析构以与构造相反的顺序执行;
即便不是虚继承,子类在构造对象时,都会先调用父类的构造函数;析构时先析构自己,然后析构父类
在使用引用时,父类和子类之间进行赋值时,类型不会变化;如果不使用引用,则会强制类型装换为相应的类型
父类可以声明子类(但是尽量少用)
子类在调用父类的函数时需要添加域名
#include <typeinfo> 可以获得当前类型的名称等信息。例如:type_info & t = typeid(*p4); t.name();