我无法理解虚拟功能。当我重载一个虚函数时,新的派生函数是否只被调用?或者派生和基本功能?因为我注意到在调用虚拟析构函数时,会调用基类和派生类析构函数。
答案 0 :(得分:4)
但是,其他虚拟成员函数与析构函数不具有相同的特殊状态。仅调用为适当对象类型定义的函数。如果您需要调用任何其他函数,则需要明确地执行此操作。
答案 1 :(得分:2)
派生类对象只不过是基类对象的一种包装器。 因此,在析构函数的情况下,应该调用两个析构函数,这是一种预期的行为。
在虚函数的情况下,您有机会替换基类中的函数。因此使用基类指针来保存派生类对象只会调用派生类中的虚函数。