Скалярное удаление деструктора

У меня есть кусок кода (из DLL), который выглядит следующим образом:

class A {
public:
virtual ~A();
};

class B : public A {
public:
~B();
}

~A() {
// #1
}

~B() {
// #2
}

Когда я использую delete an_instance_of_B я получил scalar deleting destructor, Есть обходные пути?

2

Решение

не delete экземпляр B, Вы должны использовать delete на указатели на объект, выделенный с new:

B b;
delete b;   //wrong

//.........

B* pB = new pB;
delete pB;  //okay

//.........

B justThis; //best
10

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]