将方法作为回调从一类传递到另一类

拉斐尔·卡斯特罗(Rafael Castro)

我有2个类,我想通过回调将方法从一个传递到另一个!

看到我也希望使用void(* callBack)();来保存此方法的地址。

我曾经在C中执行此操作,但我不知道如何在c ++中执行此操作;

#include <iostream>

using namespace std;

class A
{
    private:
        void (*callBack)(); //to hold the address of the method

    public:
        A();
        void setCallBack(void(*cB)());
        void useCallBack();
};


A::A()
{

}

void A::setCallBack(void(*cB)())
{
    callBack = cB;
}

void A::useCallBack()
{
    callBack();
}


class B
{
    private:
        A * Aguy;

    public:
        B();
        void someMethod();
        void otherMethod();
};

B::B()
{
    Aguy = new A();
}

void B::otherMethod()
{
    Aguy->setCallBack(someMethod);
    Aguy->useCallBack()
}

void B::someMethod()
{
    cout << "Hello. I'm from class b" << endl;
}

int main()
{
    B Bguy;
    Bguy.otherMethod();

    return 0;
}
用户名

有关详细信息,请参见c ++-<无法解析的重载函数类型>

引用答案:

在C ++中,成员函数具有指向对象的隐式参数(成员函数内部的this指针)。普通C函数可以被认为与成员函数具有不同的调用约定,因此其指针的类型(指针到成员函数vs指针到函数)是不同且不兼容的。C ++引入了一种新型的指针,称为成员指针,只有提供一个对象才能调用它。

放置静态someMethod

class B
{
    private:
        A * Aguy;

    public:
        B();
        static void someMethod();
        void otherMethod();
};

void B::otherMethod() {
    Aguy->setCallBack(B::someMethod);
    Aguy->useCallBack(); // adding missing semicolon
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将向量从一类传递到另一类作为对象

来自分类Dev

将布尔方法从一类传递到另一类

来自分类Dev

将整数数组从一类传递到另一类

来自分类Dev

将ArrayList从一类传递到另一类

来自分类Dev

如何将类型从一类传递到另一类?

来自分类Dev

将结果从一类传递到另一类

来自分类Dev

如何将头寸价值从一类传递到另一类

来自分类Dev

JAVA:将值从一类传递到另一类

来自分类Dev

将String从一类传递到另一类

来自分类Dev

如何将数组从一类传递到另一类?

来自分类Dev

将泛型从一类传递到另一类?

来自分类Dev

将属性引用从一类传递到另一类

来自分类Dev

如何在Java中将变量从一类传递到另一类?

来自分类Dev

QuartzScheduler:将数据库值从一类传递到另一类

来自分类Dev

如何将特定变量从一类继承到另一类?

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

从一类到另一类的方法调用不起作用?

来自分类Dev

从一类调用方法到另一类?

来自分类Dev

如何在Xamarin中将绑定值从一类传递到另一类?

来自分类Dev

实现从一类到另一类的类型转换

来自分类Dev

获取从一类到另一类的数组长度

来自分类Dev

使用LESS将样式从一类添加到另一类

来自分类Dev

将整数从一类转移到另一类

来自分类Dev

快速地将变量从一类转移到另一类

来自分类Dev

无法使用* .get *()将数据从一类获取到另一类

来自分类Dev

如何在iOS中将NSobject类数据从一个类传递到另一类?

来自分类Dev

如何将链函数从一类添加到另一类?

来自分类Dev

从一个类的主体调用,从另一类的主体方法调用

来自分类Dev

CSS一类忽略另一类

Related 相关文章

热门标签

归档