构造函数跟析构函数里面都可以调用虚函数,编译器不会报错!
但是由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,这个虚函数不会呈现出多态
相反,类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时往往意味着其派生类部分已经析构掉,所以也不会呈现出多态。(因此如果在基类中声明的是纯虚函数并且在基类的析构函数中调用之编译器会报错)
但是由于类的构造次序是由基类到派生类,所以在构造函数中调用虚函数,这个虚函数不会呈现出多态
相反,类的析构是从派生类到基类,当调用继承层次中某一层次的类的析构函数时往往意味着其派生类部分已经析构掉,所以也不会呈现出多态。(因此如果在基类中声明的是纯虚函数并且在基类的析构函数中调用之编译器会报错)
本文探讨了在构造函数与析构函数中调用虚函数的行为特性。指出在构造函数中调用虚函数不会展现出多态性,而在析构函数中调用虚函数也通常无法展现多态性,尤其是在基类的析构函数中调用纯虚函数时,编译器会报错。

1774

被折叠的 条评论
为什么被折叠?



