C,C++/CONCEPT
C++ Chapter 05. 복사 생성자(Copy Constructor). 05-1 '복사 생성자'와의 첫 만남
너래쟁이
2018. 2. 28. 18:26
C++ Chapter 05. 복사 생성자(Copy Constructor).
05-1 '복사 생성자'와의 첫 만남
* C++ 스타일의 초기화
* SoSimple sim2(sim1);
1. Sosimple형 객체를 생성해라.
2. 객체의 이름은 sim2로 정한다
3. sim1을 인자로 받을 수 있는 생성자의 호출을 통해서 객체생성을 완료한다
Sosimple sim2 = sim2; -> Sosimple sim2(sim1); // 묵시적 변환 (자동으로 변환)되어서 생성자 호출을 통해 객체가 생성되는 것이다
* 자동으로 삽입이 되는 디폴트 복사 생성자
* 변환에 의한 초기화! 키워드 explicit으로 막을 수 있다!
// 묵시적 변환이 발생하지 않아서, 대입 연산자를 이용한 객체의 생성 및 초기화는 불가능하다.
* 묵시적 변환이 좋은 것만은 아니다
// 묵시적 변환이 많이 발생하는 코드일수록 코드의 결과를 예측하기가 어려워지기 때문이다
// explicit는 코드의 명확함을 더하기 위해서 자주 사용되는 키워드 중 하나이다.
// 복사 생성자의 매개변수 선언에 const는 필수가 아니지만
// 복사 생성자의 매개변수에 참조형의 선언을 의미하는 &는 반드시 삽입해야 한다
// & 선언이 없다면 복사 생성자의 호출은 무한루프에 빠져버린다