所以说我有
foo* fooObject1 = new foo[10];
// here would go code for initializing fooObject1[0] to fooObject1[9] with a foo object for each.
foo* fooObject2 = new foo[30];
for(int = 0; i < 10; i++)
fooObject2[i] = fooObject1[i];
if(fooObject1 != NULL)
delete[] fooObject1; //this "destroys" the array, BUT ALSO calls the destructors of all the foo objects inside fooObject1, causing fooObject2 elements to be anything but what it was before.
fooObject1 = fooObject2;
foo
我使用其各自的方法创建的特定对象在哪里。
然而,我的问题是我想破坏 fooObject1 指向的数组,而不是数组的元素,有没有办法在 C++ 中完成?我知道解决这个问题的另一种方法是重载 = (equals) 运算符,但是在我需要它的程序中,编写这将包括为许多其他类重载许多其他 = 运算符,这使得它成为一个乏味而漫长的过程. 我希望以某种方式可以将对象保留在 fooObject2 中,但摆脱 fooObject1 指向的数组。那么这可以做到吗?如何?如果不是,那么有没有网站可以重定向我阅读它?