InterviewGuide icon indicating copy to clipboard operation
InterviewGuide copied to clipboard

C++基础 第三条:构造函数能否声明为虚函数或者纯虚函数,析构函数呢?

Open IRVING-L opened this issue 2 years ago • 0 comments

原文:

构造函数不能定义为虚函数。在构造函数中可以调用虚函数,不过此时调用的是正在构造的类中的虚函数,而不是子类的虚函数,因为此时子类尚未构造好。

勘误: 根据《effective C++》的条款09:绝不在构造和析构过程中调用虚函数可知,在构造函数中虽然可以调用虚函数,但是强烈建议不要这样做。因为基类的构造的过程中,虚函数不能算作是虚函数。若构造函数中调用虚函数,可能会导致不确定行为的发生

IRVING-L avatar Mar 10 '22 08:03 IRVING-L