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

C/C++ Q/A
[904] Re:교환하는함수가 잘이해가 안가요
최준호.스페로 [sparrow] 1786 읽음    2002-07-24 04:40
김경래 님이 쓰신 글 :
: 안녕하세요 이해가 잘안가서 질문을하게되었습니다.
:  클래스에 있는 swap함수에 Company &x가 멀가르키는지를 모르겠습니다.
: 죄송합니다. 설명을 부탁합니다.
: 그럼 즐거운 하루되세요
:
: #include <stdio.h>
: #include <string.h>
:
:
: class Company {
:     char name[20];
:     int sales;
:     int profit;
: public:
:     Company (char *p =" ", int x=0,int y=0)
:     {
:         strcpy (name,p);
:         sales =x;
:         profit =y;
:     }
:
:     void swap (Company &x)
:     {
:         char n[20];
:         int s,p;
:         strcpy(n, x.name);
:         s=x.sales ;
:         p=x.profit ;
:         strcpy(x.name,name);
:         x.sales =sales;
:         x.profit = profit;
:         strcpy(name,n);
:         sales =s;
:         profit =p;
:     }
:
:     void print()
:     {
:         printf("회사명 %s \n", name);
:         printf("매상 %d 억원 \n",sales);
:         printf("이익 %d억원 \n",profit);
:     }
: };
:
: void main()
: {
:     Company a("사이버 (주)", 500,39);
:     Company b("푸른솔 (주)",825,78);
:
:     a.swap (b);
:     a.print ();
:     b.print ();
: }
:


안녕하세요 스페로 입니다.

C++에서  참조(reference)라고 하는 포인터와 관련된 특서을 갖고 잇는 넘이 있습니다.

함수에 매개 변수에 &을 쓰면 참조 매개 변수가 됩니다.

void swap (Company &x)

선언은 위와 같이 하고요 전달할때는 &을쓸필요가 없습니다. 포인터로 프로그래밍 할실때와

차이가 잇지요

이렇게 하면 컴파일러는 자동으로 인수로 사용된 변수의 주소를 전달합니다.

그래서 스왑 함수가 올바르게 교환이 이루어집니다.

포인터 로선언하고 swap()함수를 하는 C언어 예제가 많을겁니다.

call by reference를 C언어에서 구현하려면 이렇게 했지요

C++에서는 이제 더이상 위험한 포인터를 매개변수로 하지 않고 이렇게 참조를 이용하면

많은점에서 유리 하답니다.

C++기초 책에 참조 매개변수 편을 잘 독파 하세요


+ -

관련 글 리스트
903 교환하는함수가 잘이해가 안가요 김경래 1675 2002/07/23
915     클래스 설계가 별로 안좋군요. 김백일 1724 2002/07/26
906     Re:교환하는함수가 잘이해가 안가요 남병철.레조 1705 2002/07/25
904     Re:교환하는함수가 잘이해가 안가요 최준호.스페로 1786 2002/07/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.