我对大多数OO理论有了深刻的理解,但让我困惑的一件事是虚拟析构函数.
我认为无论什么以及链中的每个对象,析构函数总是会被调用.
你什么时候打算让它们成为虚拟的?为什么?
我有
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
};
Run Code Online (Sandbox Code Playgroud)
海湾合作委员会坚持认为我有
struct IMyInterface
{
virtual method1() = 0;
virtual method2() = 0;
virtual ~IMyInterface(){};
};
Run Code Online (Sandbox Code Playgroud)
我不明白为什么.纯接口就是接口(duh).析构函数是接口的具体实现者的内部实现细节的一部分; 它不构成界面的一部分.我理解整个切片问题(或者至少我认为我这样做)
所以我的问题是 - GCC是否有权坚持它,如果是这样,为什么呢?