У меня есть кусок кода (из DLL), который выглядит следующим образом:
class A {
public:
virtual ~A();
};
class B : public A {
public:
~B();
}
~A() {
// #1
}
~B() {
// #2
}
Когда я использую delete an_instance_of_B
я получил scalar deleting destructor
, Есть обходные пути?
не delete
экземпляр B
, Вы должны использовать delete
на указатели на объект, выделенный с new
:
B b;
delete b; //wrong
//.........
B* pB = new pB;
delete pB; //okay
//.........
B justThis; //best
Других решений пока нет …