vector对象调用clean()函数时,其包含的元素指向的对象是否能自动析构

liyaobinRyan liyaobinRyan 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我定义了一个Base类,然后定义了一个vector对象来存放指向Base类的对象指针,即vector<Base*>。然后我用new创建了几个Base对象,当把这几个对象的指针放到vector中。些时我调用vector对象的clean()函数时,会否调用Base对象的析构函数,对 我刚才用new生成的Base对象进行析构。还是要我自己用Vector中Base指针逐一调用delete进行手动析构。

class Base
{
......
};

vector<Base*> baseList;
Base base1* = new Base();
Base base2* = new Base();
Base base3* = new Base();
baseList.push_back(base1);
baseList.push_back(base2);
baseList.push_back(base3);

//些时我调用clean函数时能否自己把我刚才NEW的几个对象自动析构呢?
baseList.clean();

//如果不能自动析构,我是否自行对baseList中的每个对象调用一个delete呢?
...全文
评论 10
收藏 已收藏
分享
返回顶部
liyaobinRyan
C++ 语言 65,214 成员 250,514 内容