在构造或析构函数中调用调用虚函数

默认分类 · 2024-04-19 · 34 人浏览

可以调用,但是没有动态绑定的效果,父类构造函数中调用的仍然是父类版本的函数,子类中调用的仍然是子类版本的函数。

  • 构造过程构造函数会先调用父类构造函数,而如果构造函数中有虚函数,此时子类还没有构造,所以此时的对象还是父类的,不会触发多态。
  • 析构过程中子类先进行析构,这时,如果有virtual函数的话,子类的内容已经被析构了,C++会视其父类,执行父类的virtual函数。
Theme Jasmine by Kent Liao