我正在使用多重继承,代码如下:
struct A {
virtual ~A(){}
};
struct B {
virtual void foo() = 0;
protected:
~B(){} // never called directly
};
struct C : public A, public B {
virtual void foo(){};
};
B
的析构函数是否应该被设为虚函数呢?一方面,在这里所有其他析构函数都是虚函数。另一方面,设为虚函数可能会有一些成本,那么为什么不节省这个成本呢?