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는 필수가 아니지만

// 복사 생성자의 매개변수에 참조형의 선언을 의미하는 &는 반드시 삽입해야 한다

// & 선언이 없다면 복사 생성자의 호출은 무한루프에 빠져버린다