객체 복사(effective c++ 12)

2015. 7. 26. 06:18프로그래밍/Effective C++

728x90
728x90

좋은 객체 설계

안쪽 부분을 캡슐화한 객체 지향 시스템에서

잘 된 설계는 객체를 복사하는 함수가 딱 둘만 있는 것이다!

이를 통틀어 복사 함수(copting function)이라 한다.


컴파일러는 디폴트 복사 생성자를 제공한다.

데이터를 빠짐없이 복사하는데 충실하다.


사용자가 직접 만들면 어떤 문제가?!

모든 멤버를 완전히 복사하지 않을 때(부분 복사 - partial copy) 경고가 없다.


상속 문제

문제점

기본 클래스의 맴버 변수들이 초기화 되지 않는다.


해결

복사생성자 - 기본 클래스의 복사 생성자를 호출한다.

대입 연산자 - 기본 클래스 부분을 대입한다.


복사 생성자와 복사 대입 연산자의 상호 이용?

절대 하지 말자! 

728x90
반응형