반응형
●복사생성자
- 자기 자신과 같은 형태(자료형)의 객체(자신의 클래스로 생성된 클래스)를 인자로 받는 생성자이다.
- 형태는 아래와 같이 '클래스(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 |
댓글