C++中不要在构造函数或析构函数中调用virtual函数

1)当调用derived class的构造函数时,其基类的构造函数会先执行,在此期间,对象的类型被认为是base class对象,派生类对象成员变量处于未初始化状态,virtual调用不会下降至派生类中。

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

posted on 2013-05-09 20:49  Sophia-呵呵小猪  阅读(136)  评论(0编辑  收藏  举报