안녕하세요~
연산자오버로딩을 공부하다 궁금한점이 생겨서 왔습니다
여러 책을 보다가 타 사의 C++을 공부하던도중 의문나는 점이 생겼습니다
지역변수는 레퍼런스로 리턴하면 안된다..이것은 c++초기에 배운 문법입니다
그래서 아래 해야 한다라고 나와있습니다
참고로 x,y는 Point클래스의 멤버변수입니다
Point Point::operator +(int val)
{
Point temp(x+val, y+val);
return temp;
}
하지만 아예 temp따위의 지역변수를 만들지 않고 아래처럼 해버리면
참조로 넘겨줘서 좋은것 같은데..왜 이렇게 하지 않을까요??설마 이책을 쓰신분이
이것을 모를리는없을거고.. 뭔가 이렇게하면 안되는 이유가 있을것같습니다
왜 궂이 temp를 만들어야 할까요...참조도 못하게 하는..
Point & Point::operator +(int val)
{
one = one + val;
two = two + val;
return * this;
}