回答:
在 C++ 中,当基类析构函数是虚拟的(即声明为 virtual
)时,子类析构函数(如果存在的话)通常也需要声明为 virtual
。这是因为子类在继承时,会继承基类的虚拟析构函数。为了确保在运行时能够正确调用相应的析构函数,子类析构函数需要被声明为虚拟的。
以下是一个简单的示例:
class Base {
public:
virtual ~Base() {}
};
class Derived : public Base {
public:
~Derived() override {} // 虚拟析构函数
};
在这个示例中,Base
类有一个虚拟析构函数,Derived
类继承自 Base
,因此 Derived
类也包含一个虚拟析构函数。
需要注意的是,并非所有情况都需要在派生类析构函数中声明为虚拟。如果基类析构函数不是虚拟的,子类析构函数不需要声明为虚拟。
名词解释:
推荐腾讯云产品:
产品介绍链接:
领取专属 10元无门槛券
手把手带您无忧上云