ヘッダー ファイルで次のように宣言された関数のグループと関数ポインターがあります。
public: // User declarations
void __fastcall TTopForm::Method1(void);
void __fastcall TTopForm::Method2(void);
void __fastcall TTopForm::Method3(void);
void __fastcall ( TTopForm::*Method )(void) ;
次に、私のプログラムでは、これを行います
Method = Method1;
これにより、「メンバー関数を呼び出すか、そのアドレスを取得する必要があります」というエラー メッセージが生成されます。もちろん、私はこれを試しますが、運はありません。
Method = &Method1;
私は何を間違っていますか?私は回路設計者であり、コードの専門家ではありません。明示的なコードを教えてください。
答えてくれてありがとう。C++ Builder を使用している可能性のある他の人のために、私が行ったことを投稿します。ヘルプ ファイルごとに typedef を使用しています。typedef で __fastcall を省略したのは、私の間違いの 1 つです。
class TTopForm : public TForm
{
typedef void (__fastcall TTopForm::* TMethod)(void);
...
public: // User declarations
void __fastcall TTopForm::Method1(void);
void __fastcall TTopForm::Method2(void);
void __fastcall TTopForm::Method3(void);
...
次に、私のコードで:
TMethod Method = &TTopForm::Method1;
(TopForm->*Method)();