gpt4 book ai didi

c++ - 调用指向成员函数的指针 C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:07 26 4
gpt4 key购买 nike

我有一个指向类中定义的成员函数的指针,例如:

class Example {
void (Example::*foo)();

void foo2();
};

在我的主要代码中,我将 foo 设置为:

Example *a;
a->foo = &Example::foo2;

但是,当我尝试调用 foo 时:

a->foo();

我收到以下编译时错误:“错误:明显调用的括号前的表达式必须具有(指针到)函数类型”。我假设我在某处弄错了语法,有人可以向我指出吗?

最佳答案

调用它你会这样做:(a->*(a->foo))()

(a->*X)(...) - 取消引用成员函数指针 - a->*X 周围的括号对于优先级很重要。

X = a->foo - 在您的示例中。

参见 ideone here工作示例

关于c++ - 调用指向成员函数的指针 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com