在c ++中删除指针成员

时间:2014-07-08 15:26:47

标签: c++ pointers

有人可以向我解释,为什么有必要在这个简单的情况下定义复制和赋值运算符。

struct A {
 A() {
   ptr = new int;
 }
 ~A() {
   delete ptr;
 }
int* ptr;
};

因为如果我没有定义它们,我只能调整一次矢量大小,并且第二次调整大小后程序会中断。我想了解最新情况。

int main() {
std::vector<A> a_vec;
a_vec.resize(4);
a_vec.resize(5); // program breaks
}

此外,如果我没有定义解构函数,程序工作正常,但我必须定义解构函数才能删除指针,对吗?

0 个答案:

没有答案