我有一个类(MyClass),它是抽象类的子类。 MyClass有静态成员。 当我删除MyClass对象时,Heap变得腐败,我得到各种内存违规错误。 为什么会这样?是否删除了静态成员?
class CAbstractClass {
public:
CAbstractClass();
virtual ~CAbstractClass();
...
}
带有静态成员的MyClass
class MyClass : public AbstractClass {
public:
static short s_static;
}
我正在使用MyClass :: s_static = 2等设置其值。
静态成员在.cpp文件中初始化
short MyClass::s_static=1;
现在我有一个抽象对象列表,我在其中添加了MyClass(和其他类)的实例。
list<CAbstractClass*> *objectList;
MyClass *myclassobj=new MyClass();
objectList->push_back(myclassobj);
此列表将被删除
clearAll() {
CAbstractClass *object;
std::list<CAbstractClass*>::iterator it;
for (it=this->objectList->begin(); !(it==this->objectList->end()); it++) {
object=*it;
if (object) delete object;
}
this->objectList->clear();
}