Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2167] 클래스 객체에서의 값에 의한 전달?
권기식.별사랑 [orion96] 1155 읽음    2003-03-26 13:12
안녕하세요?
학교에서 고급프로그래밍이라는 수업을 듣고 있는데요..
책에 보니 이런 내용이 있네요..

소제목은

클래스 객체에서 값에 의한 전달과 반환을 금지

소스는 다음과 같습니다.

class C {
public:
   C();
private:
   C(C&);
};
void f(C);                 // 값에 의한 호출
C g();                     // 값에 의한 반환

int main()
{
   C c1, c2;
   f(c1);                  // Error : C(C&)가 private임
   c2 = g()                // Error : C(C&)가 private임
   ...
}

void f(C cObj) {/****/}
c g() {/****/}

실제로 해보니 같은 에러가 나네요..
도대체 이유를 모르겠습니다.
교수님도 에러가 없는 것 같다면서 못 본걸로 하고 넘어가자고 하셨습니다.. ^^;
저도 그렇게 대답했구요..

책의 설명은 C의 복사 생성자 선언이 클래스 선언의 private에 위치한다. 따라서 main에서 f를 호출할 때, c1의 값으로 전달하려 하였으므로 오류가 발생한다.

클래스를 인자로 쓸 때는 레퍼런스로 넘기나요?
이런 말은 본 적이 없는데...

명쾌한 답변 부탁드리겠습니다...    

+ -

관련 글 리스트
2167 클래스 객체에서의 값에 의한 전달? 권기식.별사랑 1155 2003/03/26
2171     Re:클래스 객체에서의 값에 의한 전달? 임문환 1215 2003/03/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.