オブジェクトへのポインターの動的配列のディープ コピーを作成するにはどうすればよいですか? 私はこのコードを信じています。オブジェクトへのポインターに新しいメモリを割り当てているだけですが、それらはまだ同じ場所を指しています。したがって、「コピーされた」画像を変更すると、元の画像も変更され、その逆も同様です。
ありがとう!
宣言:
Class Scene
{
public:
.
.
.
.
private:
Image ** sceneImage;
int * coordinateX;
int * coordinateY;
int inputMax;
};
コピーコンストラクターで...
Scene::Scene (const Scene & source)
{
inputMax = source.inputMax;
sceneImage = new Image*[inputMax];
coordinateX = new int[inputMax];
coordinateY = new int[inputMax];
// copy even null indexes, because you can put images on null indexes
for (int i = 0; i < inputMax; i++)
{
sceneImage[i] = source.SceneImage[i];
coordinateX[i] = source.coordinateX[i];
coordinateY[i] = source.coordinateY[i];
}
}