C++中不要在构造函数或析构函数中调用virtual函数
1)当调用derived class的构造函数时,其基类的构造函数会先执行,在此期间,对象的类型被认为是base class对象,派生类对象成员变量处于未初始化状态,virtual调用不会下降至派生类中。
2)当调用derived class析构函数时,其基类的析构函数先被调用,同理,在此期间的类型是base class对象,派生类成分处于未定义状态,C++视它们仿佛不存在,其他成员也同样这么看待,所以virtual函数不会下降至派生类中执行。