Безопасно ли вызывать чисто виртуальную функцию в абстрактном конструкторе / деструкторе, если она имеет тело?
Я знаю, что без линии, обозначенной BODY, это небезопасно. Но с этим, это безопасно?
struct A
{
virtual ~A() { f(); }
virtual void f() = 0;
};
void A::f() {} // BODY
struct B : A
{
void f() {}
};
int main()
{
delete new B;
}
Рабочий пример:http://ideone.com/9bRZ3i