|
안녕하세요
두가지 방법이 있을 거 같습니다..
void TForm1::Bayaba()
{
Caption = "Ba Ya Ba";
}
첫번째
void __fastcall TForm1::Button1Click(TObject *Sender)
{
void (TForm1::*Func)();
Func = &TForm1::Bayaba;
(Form1->*Func)();
}
//---------------------------------------------------------------------------
두번째
void __fastcall TForm1::Button2Click(TObject *Sender)
{
void (__closure *Func)();
Func = Bayaba;
Func();
}
//---------------------------------------------------------------------------
첫번째는 일반적인 방법이구요 두번째는 빌더에서만 쓰이는 방법입니다.
그럼 즐거운 하루 되세요...
김영균 님이 쓰신 글 :
: 안녕하세요.
: 멤버함수포인터를 선언할려고 하는데 잘 안됩니다.
: 보통함수포인터의 경우
: void (*funcpointer)(void); 이런 형식이면 되는데..
:
: 예전에 책에서 본 기억을 되살려서
: 클래스멤버함수포인터를 선언할려고 하니 잘 안되네요..
:
: A라는 클래스에 멤버함수 void B(void)가 있을때
: 멤버함수포인터 C를 선언해서 B를 가리키려고 하는데
: 잘 안됩니다.
: void (*A::C)(void);
: C=instanceOfA->C;
: 이런형식으로 했더니 void (*A::C)(void); 에서 에러가 납니다.
: 어떻게 해나하나엽..
|