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

C/C++ Q/A
[2530] Re:삽입자 추출자에서 이것 좀 설명해주세요.(밑글이 짤렸네요 다시 수정)
실업자 [origin] 977 읽음    2003-05-02 11:58
참조로 하든 값으로 하든 오류는 아닙니다.

전달된 coord의 내용을 메서드 내부에서 변경하려면 참조 또는 포인터로 합니다.

그리고 내용을 변경하지 않는 경우 값으로 호출하는 경우가 있는데 그렇게 하면 값을 복사하는데 시간과 메모리가 듭니다.

따라서 내용을 변경하지 않는 경우 왠만하면 값으로 하지말고 아래와 같이 하는게 낫습니다.
friend ostream &operator <<(ostream &stream, const coord& ob);


함수 호출에 있어서 다음과 같은 매개변수 전달 방식이 있습니다.
1.값
호출하는 쪽에서 객체를 스택에 복사하여 넘겨줍니다.
호출되는 함수 내부에서는 위의 임시 객체를 액세스하게 됩니다.
따라서, 호출되는 함수 내부에서 임시 객체를 수정한다하여도 호출하는 쪽에서 지정했던 객체는 변하지 않습니다.

2.포인터/참조
호출하는 쪽에서 객체의 번지/참조를 스택에 복사하여 넘겨줍니다.
호출되는 함수 내부에서 포인터/참조를 통하여 객체를 변경할 수 있음

포인터와 참조에 대한 개념을 안다면 쉽게 이해가 되리라 생각합니다.


임계종 님이 쓰신 글 :
: #include <iostream.h>
:
: class coord
: {    int x,y;
: public:
:     coord()    {x=0;y=0;}
:     coord(int i,int j)    {x=i;y=j;}
:     friend ostream &operator <<(ostream &stream, coord ob);
:     friend istream &operator >>(istream &stream, coord &ob);
: };
:
: ostream &operator <<(ostream &stream, coord ob)
: {    stream <<ob.x <<"," <<ob.y <<"\n";
:     return stream;
: }
:
: istream &operator >>(istream &stream, coord &ob)
: {    cout <<"Enter coordinates : ";
:     stream >>ob.x >>ob.y;
:     return stream;
: }
:
: ..
:
: 프랜드 함수로 삽입자 추출자를 생성할때 객체 coord ob 를 받는데
:
: 여기서 삽입자는 객체에 대한 참조로 받지 않아도 되는데
:
: 추출자는 꼭 객체에 대한 참조로 받아야 하네요.
:
: 참조로 받지 않으면 입력을 받지 않네요.
:
: (compiler 는 visual c++6.0 입니다)
:
: 책에서는 그냥 당연하다는 듯히 써 놓고 더 이상 설명이 없는데
:
: 이것에 대한 상세한 설명을 부탁드립니다.
:
: 더 이상 찾을 곳이 없어 여기에 올립니다
:
: 그럼 ..
:

+ -

관련 글 리스트
2513 삽입자 추출자에서 이것 좀 설명해주세요.(밑글이 짤렸네요 다시 수정) 임계종 1004 2003/04/30
2530     Re:삽입자 추출자에서 이것 좀 설명해주세요.(밑글이 짤렸네요 다시 수정) 실업자 977 2003/05/02
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.