首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用成员函数的函数指针

调用成员函数的函数指针
EN

Stack Overflow用户
提问于 2015-10-08 10:31:49
回答 1查看 2K关注 0票数 0

我对C++非常陌生(在许多Java年之后)。我试图使用指向类成员函数的函数指针如下:

代码语言:javascript
复制
class MyClass
{
public:
    MyClass();
    void foo();
    void bar();
};

MyClass::MyClass(){}

void MyClass::bar(){}


void MyClass::foo()
{
    void (MyClass::*myMethod)();
    myMethod = &MyClass::bar;

//-----THIS IS THE LINE WITH PROBLEM-----------
    myMethod();

}

但是,编译器失败:

代码语言:javascript
复制
test.cpp: In member function ‘void MyClass::foo()’:
test.cpp:22:14: error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘myMethod (...)’, e.g. ‘(... ->* myMethod) (...)’
     myMethod();
          ^

我已经尝试了各种混合的*,&字符,谷歌搜索解决方案,但无法使它发挥作用。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 10:34:33

myMethod是一个成员函数,因此您需要在它所属的类的实例上调用它。由于您已经在成员函数中,所以可以使用this

代码语言:javascript
复制
(this->*myMethod)()
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33013248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档