【发布时间】:2012-05-28 14:17:20
【问题描述】:
我有一个“Pictureframe”的向量(pflist),我想销毁它们。所以我运行 pflist.clear();文档说这会运行向量中每个项目的析构函数,但事实并非如此!
我有一个:
vector<Pictureframe*> pflist;
剩下的就是:
class Pictureframe{
scene::IMeshSceneNode *picture;
scene::IMeshSceneNode *frame;
public:
Pictureframe();
~Pictureframe();
};
然后在cpp文件中:
Pictureframe::~Pictureframe(){
// delete picture;
// delete frame;
cout<<"Destructor Called.\n\n";
}
看不到“被调用的析构函数”!这就是我所说的:
pflist.clear();
我确定这条线正在运行,并且由 5 个相框填充。我还尝试了一个通过向量 pop_back'ing 的 for 循环,并且遇到了同样的问题。
所以析构函数,Y U NO CALL?
【问题讨论】:
-
你确定没有
PictureFrame*的向量吗? -
你的向量是什么类型的?是
vector<Pictureframe>还是vector<Pictureframe *>? -
我会调整问题
标签: c++ vector destructor irrlicht