Назначение указателей функций C ++ функциям-членам одного и того же объекта

Как заставить работать назначения указателя функций (и, возможно, остальные) в test.calculate?

#include <iostream>

class test {

    int a;
    int b;

    int add (){
        return a + b;
    }

    int multiply (){
        return a*b;
    }

    public:
    int calculate (char operatr, int operand1, int operand2){
        int (*opPtr)() = NULL;

        a = operand1;
        b = operand2;

        if (operatr == '+')
            opPtr = this.*add;
        if (operatr == '*')
            opPtr = this.*multiply;

        return opPtr();
    }
};

int main(){
    test t;
    std::cout << t.calculate ('+', 2, 3);
}
5
задан Peter Mortensen 3 November 2013 в 11:24
поделиться