객체 복사(effective c++ 12)
2015. 7. 26. 06:18ㆍ프로그래밍/Effective C++
728x90
728x90
좋은 객체 설계
안쪽 부분을 캡슐화한 객체 지향 시스템에서
잘 된 설계는 객체를 복사하는 함수가 딱 둘만 있는 것이다!
이를 통틀어 복사 함수(copting function)이라 한다.
컴파일러는 디폴트 복사 생성자를 제공한다.
데이터를 빠짐없이 복사하는데 충실하다.
사용자가 직접 만들면 어떤 문제가?!
모든 멤버를 완전히 복사하지 않을 때(부분 복사 - partial copy) 경고가 없다.
상속 문제
문제점
기본 클래스의 맴버 변수들이 초기화 되지 않는다.
해결
복사생성자 - 기본 클래스의 복사 생성자를 호출한다.
대입 연산자 - 기본 클래스 부분을 대입한다.
복사 생성자와 복사 대입 연산자의 상호 이용?
절대 하지 말자!
728x90
반응형
'프로그래밍 > Effective C++' 카테고리의 다른 글
const 들이대기(effective c++ 03) (0) | 2015.07.27 |
---|---|
#define 안녕(effective c++ 02) (0) | 2015.07.27 |
C++은 연합체로 바라보자(effective c++ 01) (0) | 2015.07.27 |
(작성중)배열 vs 다형성(more effective c++ 03) (0) | 2015.07.25 |
C++ 캐스팅(more effective c++ 02) (0) | 2015.07.25 |
객체 초기화(effective c++ 04) (0) | 2015.07.24 |
pointer vs reference (more effective c++ 01) (0) | 2015.07.21 |