我的头文件中有一组函数和一个函数指针,声明如下。
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 是我的错误之一。
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)();