だから私が持っていると言う
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;
wherefoo
は、それぞれのメソッドで私が作成した特定のオブジェクトです。
ただし、ここでの問題は、配列の要素ではなく、fooObject1 が指す配列を破棄したいということです。それを C++ で行う方法はありますか? 問題を回避する別の方法は、= (等号) 演算子をオーバーロードすることですが、それが必要なプログラムでは、他の多くのクラスの他の多くの = 演算子をオーバーロードすることを含む書き込みで、退屈で長いプロセスになります。 . 何らかの方法でオブジェクトを fooObject2 に保持し、fooObject1 が指す配列を取り除くことを望んでいました。それで、これはできますか?どのように?そうでない場合、それについて読むために私をリダイレクトできるウェブサイトはありますか?