Effective C++中提到,尽量不要再构造函数中调用虚函数,主要是构造函数首先需要调用基类的构造函数,此时对象尚未初始化完成,因此还是作为基类,所以基类调用的虚函数是基类本身的。只有在初始化完成之后,对象才能够调用新的虚函数。
通常,从构造函数的内部调用所有成员函数是安全的,因为该对象在用户代码的第一行执行之前已完全设置(已初始化虚拟表等)。 但是,在构造或析构期间,成员函数调用抽象基类的虚拟成员函数可能是不安全的。构造函数可以调用虚函数。 调用虚函数时
Effective C++中提到,尽量不要再构造函数中调用虚函数,主要是构造函数首先需要调用基类的构造函数,此时对象尚未初始化完成,因此还是作为基类,所以基类调用的虚函数是基类本身的。只有在初始化完成之后,对象才能够调用新的虚函数。
通常,从构造函数的内部调用所有成员函数是安全的,因为该对象在用户代码的第一行执行之前已完全设置(已初始化虚拟表等)。 但是,在构造或析构期间,成员函数调用抽象基类的虚拟成员函数可能是不安全的。构造函数可以调用虚函数。 调用虚函数时