我有一个包含指针的类,我想将该类的临时对象推送到向量。我收到两次调用析构函数的错误,但是使用指针矢量可以正常工作。有没有办法不做一个指针矢量来做这种事情?
错误:
class TestClass {
public:
TestClass() {
Array = new int[10];
}
~TestClass() {
delete[] Array;
}
private:
int* Array;
};
int main() {
std::vector <TestClass> Vector;
Vector.emplace_back(TestClass());
return 0;
}
精细:
class TestClass {
public:
TestClass() {
Array = new int[10];
}
~TestClass() {
delete[] Array;
}
private:
int* Array;
};
int main() {
std::vector <TestClass*> Vector;
Vector.emplace_back(new TestClass());
return 0;
}
其他问题:如果临时对象包含指针,应如何从它们中返回临时对象?仅将它们作为指针返回?