항목 16. operator=에서 모든 데이터 멤버들로의 치환을 수행한다.

이유
1. 재정의했었다면, 클래스 업그레이드 후 값을 변경안하면 안들어 간다.
2. 상속 관계의 값이 operator=으로 정상적으로 들어가지 않는다.

해결 방법
1. 업그레이드 하면 주의깊게 다시 정의 할것     2008/06/01 19:52 수정 수정
2. 상속관계일때는 자식의 생성자의 초기화 값자체를 인자로써 부모클래스의 생성자를 호출하면 정상적으로 된다.
1. 포인터의 깊은 복사가 필요없다면, 오히려 정의하지 않는 편이 더 좋다.(일일이 변경하지 않아도 되니까!)


주의 사항
1. 1번이 주의 사항이다.      2008/06/01 19:52 수정 수정
1. 만약 정의해아만 한다면, 반드시 operator=을 상황에 맞게 정의해야 한다!


개인적인 생각
1. 깊은 복사가 아니라면, 상속관계라 할지라도 자동으로 값이 들어간다.
- 테스트 했다. 책 자체가 1998년도에 작성된것이라 이런 주의 사항이 있었던거 같다. 하지만 이런것은 알고 넘어가야 한다. 과거의 지식을 쌓아올려 현재의 지식을 만드는거니까 (2008/06/01 19:52 내가 한말 맞아? .. 어디서 주워 들었지... 멋지다!)

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요