如何创建指向对象的动态指针数组的深层副本?我相信这段代码,我只是为指向对象的指针分配新内存,但它们仍然指向同一个位置。因此,当我更改“复制”图像时,原始图像也会更改,反之亦然。
谢谢!
声明:
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];
}
}