클래스 스택에 관계 연산자 ==을 오버로드합니다. 동일한 유형의 스택이 동일합니다. 그렇지 않으면 거짓.로컬 임시 객체에 대한 참조를 반환합니다.
내 코드 :
template <class Type>
const stackType<Type>& stackType<Type>::operator ==
(const stackType<Type>& otherStack)
{
if (this->stackTop != otherStack.stackTop)
return false;
for (int i = 0; i < stackTop; i++)
if (this->list[i] != otherStack.list[i])
return false;
return true;
} //end operator==
내가 로컬 임시 객체 경고에 반환 참조를 받고 그리고 난 함수 범위가 끝나면이 파괴되고 있다고 이해 것과. 누구든지이 경고를 해결하는 올바른 방향으로 나를 가리킬 수 있습니까?
임시 임시로 참조를 반환하지 마십시오. – Ron
경고를 피하려면 그냥하지 말아라. ref를 속성이나 할당 된 메모리 (new)로 안전하게 반환 할 수있다. – fievel
@fievel하지만 왜 아무 것도 할당하지 않습니까? 묻는 사람은 분명히 bool을 반환해야하고 반환 유형을 망쳤습니다. – user4581301