메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 C++ 프로그래밍

뇌를 자극하는 C++ 프로그래밍 질의응답 게시판입니다.

복사생성자에서 레퍼런스(&)를 붙이는 이유를 알고 싶어요.

2006-08-25

|

by picnic

2100

이현창님 책 547페이지에 있는 복사생성자 예에 대한 설명 감사히 읽었습니다. 다만 &를 붙이는 이유에 대한 언급이 없는 것 같아서요.

다음 코드에서요. 복사생성자에 왜 &를 붙여야 컴파일 에러가 안뜨나요?
쉬운 내용일 듯하면서도 잘 이해가 안갑니다.
저의 우문에 대한 현창님의 현답을 기다리면서..

#include
using namespace std;

struct samp {
   int a, b;
   char who[20];
public:
   samp(char *str)
   {
         strcpy(who,str);
     cout<< who << endl;
   }
   samp(const samp str) // <= 왜 복사생성자는 &를 붙여야 하나요?
   {
           a = str.a;
           b = str.b;
           strcpy(who,str.who);
            cout<< "복사생성자" << endl;
   }

   int get_a() { return a; }
   int get_b() { return b; }
   ~samp() { cout << who << endl; }

};

void output(samp sam)
{
        cout << sam.get_a() < }

int main()
{
    samp ob("A");
        samp ob2(ob);

        output(ob);

    return 0;
}

늘 건강하시고요. 항상 감사합니다.

picnic 올림
댓글 입력
자료실