C++:是否可以在构造函数完成之前调用对象的函数?

Jon*_*han 4 c++ constructor function instance

在C++中,是否可以在该实例的构造函数完成之前调用实例的函数?

例如,如果A的构造函数实例化B,B的构造函数调用A的一个函数.

sbi*_*sbi 11

是的,这是可能的.但是,您有责任调用的函数不会尝试访问任何没有调用其构造函数的子对象.通常这很容易出错,这就是应该避免的原因.

  • 包含在此(但值得强调)的是,您不应该从构造函数中调用虚拟成员函数,至少在不了解会发生什么的情况下.由于任何派生类尚未完全构造,在基类构造函数中调用重写的虚函数将调用该函数的基类实现(如果基类函数是纯虚函数,则会出现运行时错误).因此,最好不要在构造函数中调用_any_虚函数. (3认同)