(C++) 복사생성자 질문
글쓴이: canuyes / 작성시간: 목, 2012/10/04 - 10:11오전
C 를 배우고 C++를 배우는 중인 초보자입니다.
복사생정자 정의시에 복사 생성자의 매개변수를 아래의 refer1과 같이 참조형으로 해야만하는 이유가 궁급합니다.
class Example{ private: int num; public: Example():num(0){} Example(const Example& copy):num(copy.num){} /*refer 1*/ };
학습중인 교재에는 복사생성자의 매개변수를 참조형으로 하지 않으면 무한루프에 빠져버린다고 나와있네요...
그 이유를 알려주세요 ㅠㅠ.
Forums:
참조가 아닌 경우 루프에 빠지는 이유는
참조가 아닌 객체로, 즉, const Example로 할 경우 매개변수의 전달 과정에서 객체의 '복사'가 이루어지게 됩니다.
그럼 해당 객체의 복사 생성자로 타고 들어가겠죠. 어라...또 객체네요...? 이 객체를 복사하기 위해 또 복사 생성자를
타고 들어가게 되고...이후에는... 자세한 설명은 생략합니다- _-)
댓글 달기