首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将成员函数指针传递到c++中的成员对象

将成员函数指针传递到c++中的成员对象
EN

Stack Overflow用户
提问于 2010-03-04 04:50:44
回答 4查看 31.3K关注 0票数 24

在C++中使用指向函数的指针有问题。下面是我的例子:

代码语言:javascript
复制
#include <iostream>

using namespace std;

class bar
{
public:
    void (*funcP)();
};

class foo
{
public:
    bar myBar;
    void hello(){cout << "hello" << endl;};
};

void byebye()
{
    cout << "bye" << endl;
}


int main()
{
    foo testFoo;

    testFoo.myBar.funcP = &byebye;         //OK
    testFoo.myBar.funcP = &testFoo.hello;  //ERROR
    return 0;
}

编译器在testFoo.myBar.funcP = &testFoo.hello;返回错误

ISO C++禁止使用绑定成员函数的地址来形成指向成员函数的指针。说'&foo::hello'

无法在赋值中将“void(foo::)()”转换为“”void()()“”

所以我试着这样做:

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

但是现在编译器又增加了一个:

'foo‘尚未声明为

有没有办法让它工作?

提前感谢您的建议

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2374847

复制
相关文章

相似问题

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