하나의 객체를 다른 객체에 할당하려고하면 프로그램이 중단되고 아무 문제가 있습니까?이 할당 연산자 오버로드에 어떤 문제가 있습니까?
Screen& operator=(Screen &scr) {
if (this != &scr){
for (int i = 0; i < 50; i++)
fields[i] = NULL;
for (int i = 0; i < scr.numOfFields; i++)
fields[i] = scr.fields[i];
numOfFields = scr.numOfFields;
currentField = scr.currentField;
}
return *this;
}
당신이 줄이에 충돌 알고 있습니까? – Anthony
전체 클래스 정의, 함수 프로토 타입 및 main()을 포함하여 컴파일 및 충돌을 포함한 완벽한 테스트 프로그램을 게시하십시오. 왜냐하면 나는 여러분의 코드의 모든 라인을 포함하는 테스트 프로그램을 작성했기 때문에 1) operator =에 인수를 추가하지 않고 컴파일하지 않고 멤버 함수로 만들고 2) 내가 한 후에 컴파일했다. 충돌없이 달렸다. –
'필드 * '란 무엇입니까? 당신이 가리키는'Field' 객체를 소유하고 계십니까? 그렇지 않습니까? 그렇게하면 메모리 누수와 충돌이 발생합니다. 그렇지 않다면 괜찮아요.하지만 우리는 추측 할 수 없습니다. –