개체에 대한 포인터의 동적 배열의 전체 복사본을 어떻게 만듭니 까? 나는이 코드를 믿는다. 객체에 대한 포인터를 위해서만 새로운 메모리를 할당하고 있지만 여전히 같은 위치를 가리키고있다. 따라서 "복사 한"이미지를 변경하면 원본 이미지도 변경되고 그 반대의 경우도 마찬가지입니다.어떻게 객체에 대한 포인터의 복사 생성자를 생성합니까 (딥 복사)?
감사합니다.
declatration :
복사 생성자에서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];
}
}