First& operator=(const First& ref)
{
num1=ref.num1;
num2=ref.num2;
return *this;
}
이렇게 해서 연산자 중첩시켜도 돌아가고,
First operator=(const First& ref)
{
num1=ref.num1;
num2=ref.num2;
return *this;
}
그냥 반환형을 객체로 해도 연산자 중첩 제대로 동작하네요. 똑같은 건데 책은 참조자 반환이 당연한 것처럼 서술했을까
혼자 곰곰이 고민하다가 도달한 결론입니다. 잘못된 부분 지적 감사하겠습니다.
객체 반환을 사용하게 되면, 객체 반환 과정에서 생성되는 임시 객체가 메모리를 차지하므로 불필요한 낭비가 된다.
그러므로 참조자 반환으로도 충분히 해당 기능을 구현할 수 있다면 가능한 참조자 반환을 사용하는 것이 좋다.
미친 - _-) 레퍼런스 남발하는게 제일 안좋은데... 그냥 포인터를 쓰는게 훨씬 깨끗함.
인스턴스 초기화 할 때 멤버에 레퍼런스 달려있으면 레알 썅쉐리 욕이 막 나온다는
그럼...이렇게 바꾼다면 어떤가요?
객체 반환을 사용하게 되면, 객체 반환 과정에서 생성되는 임시 객체가 메모리를 차지하므로 불필요한 낭비가 된다.
그러므로 포인터 반환으로도 충분히 해당 기능을 구현할 수 있다면 가능한 포인터 반환을 사용하는 것이 좋다.
뭐 글 쓰는 모양인데, 컨텍스트 따라 다르지만 일단 방법 자체는 소개하는게 좋지 않겠냐는 \'ㅅ\')
아, 정말 감사합니다!
땡칠도사 // ........대입 연산자에다가 포인터 반환을 쓰라고?
코드 안읽었음 ㅇ>-<
대입연산자를 중첩해서 해봐야 확인 가능할것 같은데.. a=b=c=d... 참조반환일경우 리턴시에 임시객체가생성되는원칙에따라 실제 객체가위치하고 값리턴일경우는 새로 임시 객체가 생성되는것 아닌가? 귀찮아서 확인은 스킴..