Я не нашел ответа на этот вопрос в C ++ Faq lite:
Как мне определить базовый класс, чтобы каждый наследующий его класс должен был определить деструктор ?
Я пробовал запустить эту программу
struct VDtor { virtual ~VDtor()=0; };
struct Test:VDtor { virtual ~Test(){} };
int main() { delete new Test; return 0; }
http://codepad.org/wFcE71w3 С ошибкой
In function `Test::~Test()':
t.cpp:(.gnu.linkonce.t._ZN4TestD0Ev+0x1e): undefined reference to `VDtor::~VDtor()'
In function `Test::~Test()':
t.cpp:(.gnu.linkonce.t._ZN4TestD1Ev+0x1e): undefined reference to `VDtor::~VDtor()'
Итак, возможно ли это?