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

C++빌더 Q&A
C++Builder Programming Q&A
[25698] Re:Re:[질문]Compiler error..
skjoon [skjoon] 510 읽음    2003-05-21 11:40
하안인 님이 쓰신 글 :
: OleVariant의 Delta값이 DeltaDS->Delta값이군요.
:
: GuestProvider->ApplyUpdates(DeltaDS->Delta, 1, ErrCount);
: 로 하니 에러가 안나네요.
: 근데 3번째 파라메터값은 어드레스를 넘겨야 하는것이 아닌가요.
:  GuestProvider->ApplyUpdates(DeltaDS->Delta, 1, &ErrCount);
: 로 하면 에러가 나네요
:

어드레스를 넘기면 안됩니다.
int &ErrorCount 는 포인터가 아니고, 참조매개변수(reference parameter)를 사용한 것입니다. 
그러므로 세번째 인자는 &ErrCount가 아니고, ErrCount가 맞습니다.

이렇게 인자를 넘겨주게 되면 ApplyUpdates()함수에서는 자동으로 ErrCount의 주소값을 가져가게됩니다. 그리고 그 함수 내부에서는 * 연산자를 사용하지 않고 해당 변수를 포인터로 취급하게 됩니다.

다음은 책에 있는 간단한 예 입니다.

#include <iostream.h>

void f(int &n);

main()
{
  int i = 0;
  f(i);
  cout << "Here is i's new value : " << i << '\n';
  return 0;
}

// 여기서 f()는 참조 매개변수를 사용
void f(int &n)
{
  // 다음문장에서는 * 가 전혀 필요없습니다.
  n = 100; // f()를 호출한 인수에 100을 저장
}

+ -

관련 글 리스트
25696 [질문]Compiler error.. 하안인 531 2003/05/21
25697     Re:[질문]Compiler error.. 하안인 609 2003/05/21
25698         Re:Re:[질문]Compiler error.. skjoon 510 2003/05/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.