我有一段代码(来自DLL),如下所示:
class A {
public:
virtual ~A();
};
class B : public A {
public:
~B();
}
~A() {
// #1
}
~B() {
// #2
}
当我使用delete an_instance_of_B
时,我得到scalar deleting destructor
。任何解决方法?
答案 0 :(得分:10)
不要delete
B
的实例。您应该在指向分配了delete
的对象的指针上使用new
:
B b;
delete b; //wrong
//.........
B* pB = new pB;
delete pB; //okay
//.........
B justThis; //best