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

C/C++ Q/A
[2861] 멤버함수 포인터에서.. (C++Builder 도움말에 나온느거.)
최준호.스페로 [sparrow] 1035 읽음    2003-07-23 10:44
안녕하세요 스페로 입니다.

__closer 에대해 도움말을 보다가 이상한게 있어서 질문 합니다.


아래와 같이 도움말에 있는 것을 약간 변경하여 실행해 보았습니다.

//---------------------------------------------------------------------------
#include <stdio.h>
#include <conio.h>
#pragma hdrstop

//---------------------------------------------------------------------------

class base

{
  public:
    void func(int x) { printf("%d",x); };
};
typedef void (base::* pBaseMember)(int);
int main(int argc, char* argv[])
{
  base        baseObject;
  pBaseMember m = & base::func; // Get pointer to member 'func'
  // Call 'func' through the pointer to member
  (baseObject.*m)(17);

  getch();
  return 0;
}

17을 잘출력 합니다.

일반적인 C 에서 함수 포인터는 위에서 처럼 &연산자를 쓰지 않고 함수이름 자체가 포인터로 간주 합니다.

그래서 아래와 같이 & 연산자를 띠어내고 해보았음니다.
  pBaseMember m = base::func; // Get pointer to member 'func'

결과는 에러없이 17을 잘출력합니다.


?? 어찌된 일인지요??


+ -

관련 글 리스트
2861 멤버함수 포인터에서.. (C++Builder 도움말에 나온느거.) 최준호.스페로 1035 2003/07/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.