将函数指针指向成员方法

时间:2018-10-12 12:58:06

标签: c++ member-function-pointers

下面有2个ClassA和ClassB类。 如何在classB的构造函数中初始化将指针传递给ClassA的方法的classA对象?

非常感谢!

typedef int (*doWork)(int, int);

int GlobalAdd(int a, int b) {
    return a + b;
}

class ClassA {
public:
    ClassA(doWork){}
};

class ClassB 
{
    bool mIsBlocked = false;

public:
    ClassB() {
        ClassA A1(GlobalAdd); // OK
        ClassA A2(&ClassB::MemberAdd); // error C2664: 'ClassA::ClassA(ClassA &&)': cannot convert argument 1 from 'int (__thiscall ClassB::* )(int,int)' to 'doWork'
    }

    int MemberAdd(int a, int b)
    {
        if(mIsBlocked)
            return a + b;
        return -1;
    }
};

0 个答案:

没有答案
相关问题