You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用存放在外部结构体中的类成员函数指针?

C++成员函数指针调用语法修正

你当前的代码无法运行,核心问题是成员函数指针的调用语法错误。C++中通过对象指针调用成员函数指针时,需要使用->*操作符来关联对象指针和成员函数指针,而非分开使用->和.*。

修正后的代码

struct CALLBACK_DATA
{
    Object *pointer;
    void (Object::*callback)();
};

int main()
{
    CALLBACK_DATA data = getData();
    // 正确的调用写法
    (data.pointer->*data.callback)();
}

关键说明

  • 必须使用->*操作符:当持有对象指针(data.pointer)和成员函数指针(data.callback)时,需要用->*将二者绑定,才能正确调用成员函数。
  • 括号不可省略:由于->*的优先级低于函数调用运算符(),必须用括号包裹data.pointer->*data.callback,确保先完成指针绑定,再执行函数调用。

内容的提问来源于stack exchange,提问作者Praveen Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:52:08