최근에 복사 생성자에 대한 매개 변수에 대한 인터뷰에서 질문을 받았습니다.
[편집] 복사 생성자 기능을 구현하는 C++ 언어의 디자이너로서 const 개체에 대한 const 포인터에 대해 상수 참조 매개 변수를 선택하는 이유는 무엇입니까?복사 생성자에 대한 매개 변수 선택
복사 생성자에서 아마도 의미가없는 NULL에 포인터를 할당 할 수 있기 때문에 포인터 변수가 독립 객체 (사실상 좋지는 않을 것입니다. 효율성의 용어) 반면에 참조는 실제 객체에 대한 별칭 일뿐입니다 (그러므로 객체를 전달하는 더 좋은 방법).
다른 아이디어가 있습니까?
통찰력을 얻었습니다. 복사 생성자에서 원본 객체를 변경할 수 없으므로 const 참조를 사용해야합니다. 그러나 복사 생성자가 const 객체 형식에 대한 const 포인터를 사용한다면 객체의 사용자는 먼저 독립 객체 (const에 대한 const 포인터)를 선언 한 다음 객체의 주소로 초기화해야합니다. 매개 변수로서 const 포인터 임시 변수가 C++에서 허용되지 않기 때문에 우리는 복사가 필요하고 복사 생성자를 사용한다. 의미가 있습니까? – Ankur