【Effective C++ 详解】-- 在构造函数中,尽可能地避免调用虚函数、非静态成员函数和虚基类的函数。

在构造函数中调用虚函数、非静态成员函数和虚基类的函数可能会导致一些问题,主要有以下几点:

  1. 对象尚未完全构造:在构造函数中调用虚函数、非静态成员函数和虚基类的函数时,对象可能尚未完全构造,这可能会导致未定义的行为。

  2. 虚函数表指针未初始化:在构造函数中调用虚函数时,虚函数表指针可能尚未初始化,这会导致程序崩溃或者出现未定义的行为。

  3. 虚基类的构造函数未被调用:在构造函数中调用虚基类的函数时,虚基类的构造函数可能尚未被调用,这会导致程序出现未定义的行为。

因此,在构造函数中应该尽可能地避免调用虚函数、非静态成员函数和虚基类的函数,以避免出现上述问题。如果需要在构造函数中调用这些函数,可以考虑将它们声明为非虚函数或者将它们延迟到对象完全构造之后再调用。

你可能感兴趣的:(Effective,C++,总结,C++11,Linux,C/C++,c++,开发语言)