请无视,非常抱歉
声明
int* newArr = new int[vectSize];
// ...
intPtr = newArr;
delete[] newArr;
错了。
通过赋值
intPtr = newArr
,您仅复制 指针,而不是它指向的内存。因此,在赋值之后,您将有两个指针变量,指向相同的内存。
当您
delete[] newArr
时,您使两个指针都无效。
解决方案:不要删除新数组。
另一方面,你真的需要了解三和五的规则。如果不遵循它们,
IntVector
将无法复制对象(即您无法按值传递或返回此类对象)。