본문 바로가기
프로그래밍/c++

c++ 복사생성자

by -현's- 2013. 6. 19.
반응형



●복사생성자

 - 자기 자신과 같은 형태(자료형)의 객체(자신의 클래스로 생성된 클래스)를 인자로 받는 생성자이다.


- 형태는 아래와 같이 '클래스(const 클래스& 객체명){~~}' 이다. 반드시 '&'를 사용해서 레퍼런스로 인자를 받아야 한다. const는 전달된 인자의 내용을 변경하지 못하도록 한다.


ex)











●디폴트 복사 생성자

- 디폴트 생성자를 별도로 생성하지 않았을 경우 디폴트 복사생성자가 자동으로 생긴다.


- 디폴트 복사 생성자는 멤버 변수 대 멤버 변수의 복사를 수행한다.


ex)








●깊은 복사

- 예를 들어 문자열을 복사할 경우, 실제로 문자열 변수에 저장되는 값은 문자열의 주소이다. 따라서 복사생성자에서 문자열의 값이 아니라, 주소값을 복사하게 된다.이를 막기 위해 직접 복사생성자를 정의해야한다. 이를 깊은 복사라고 한다.


- 생성자 내에서 메모리 공간을 동적 할당한다면, 깊은 복사를 하는 복사생성자를 정의해야 한다.


ex)









반응형

'프로그래밍 > c++' 카테고리의 다른 글

c++ static  (0) 2013.06.21
c++ const  (0) 2013.06.20
c++ 클래스(class) 3  (0) 2013.06.19
c++ 클래스(class) 2  (0) 2013.06.17
c++ 클래스(class) 1  (0) 2013.06.16

댓글