'Effective C++'에 해당되는 글 12건

  1. 2009/02/17 항목 12. 객체의 모든 부분을 빠짐없이 복사하자.


내용
객체의 안쪽 부분을 캡슐화한 객체 지향 시스템 중 설계가 잘 된 것들을 보면, 객체를 복사 하는 함수가 딱 두개만 있는 것을 볼 수 있다. 이 둘을 복사 생성자와 복사 대입 연산자라 하고, 이 둘을 통틀어 객체 복사 함수(copying function)라 부른다.

컴파일러가 생성한 복사 함수는 기본적인 요구에 충실하다. 복사되는 객체가 갖고 있는 데이터를 빠짐없이 복사한다.

주의점
만약 컴파일러가 만든 기본 동작에 마음에 안들어 직접 복사 함수를 선언한다면 다음과 같은 것들을 지켜야 한다.
  1. 기존 클래스에 멤버를 추가하면 복사 함수를 수정 해줘야 한다.
  2. 파생 클래스에서 기본 클래스의 복사 함수를 호출 하도록 만들어야 한다.


이것만은 잊지 말자!
- 객체 복사 함수는 주어진 객체의 모든 데이터 멤버 및 모든 기본 클래스 부분을 빠드리지 말고 복사해야 한다.
- 클래스의 복사 함수 두개를 구현할 떄, 한쪽을 이용해서 다른 쪽을 구현하려는 시도는 절대로 하지 말자.그 대신, 공통된 동작을 제 3의 함수에다 분리해 놓고 양쪽에서 이것을 호출하게 만들어서 해결하자.

관련링크
http://ikpil.tistory.com/414
http://kldp.org/node/78631
http://rookiecj.tistory.com/8
http://ikpil.tistory.com/298

저작자 표시 비영리 동일 조건 변경 허락
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by deviAk

트랙백 주소 : http://deviak.com/trackback/2690141 관련글 쓰기

댓글을 달아 주세요