struct A
{
virtual ~A() { this->f(); }
virtual void f() {};
};
struct B : A
{
int* p;
B() : p(new int) {}
~B()
{
delete p;
p = 0;
}
void f() override { *p = 0; }
};
int main()
{
delete new B; // Is it safe?
}
가상 소멸자에서 다른 가상 메서드를 호출해도 안전합니까?가상 소멸자에서 다른 가상 메서드를 호출하는 것이 안전합니까?
본체가 순수 가상 용으로 제공되면 정의되지 않습니다. –
나는 확실하게 질문을했다 .. http://stackoverflow.com/questions/18456450/is-it-safe-to-call-a-pure-virtual-function-in-an-abstract-constructor-destructor –