【发布时间】:2012-02-17 16:05:36
【问题描述】:
似乎每次我向向量m_test添加一个对象时,都会调用析构函数方法。我错过了什么吗?我怎样才能防止这种情况发生?
class TEST
{
public:
TEST();
~TEST();
int * x;
};
TEST::TEST()
{
}
TEST::~TEST()
{
... it is called every time I push_back something to the vector ...
delete x;
}
vector<TEST> m_test;
for (unsigned int i=0; i<5; i++)
{
m_test.push_back(TEST());
}
【问题讨论】:
-
在 C++11 中,您可以使用
m_test.emplace_back()来避免创建临时文件。无论如何,请永远记住Rule of Three。