b******b 发帖数: 300 | 1 class Calculator{
public:
int add(int a, int b){
return a+b;
}
int subtraction(int a , int b){
return a-b;
}
};
typedef int(Calculator::*CalPointer)(int,int);
int _tmain(int argc, _TCHAR* argv[])
{
CalPointer fun;
fun = Calculator::add;
fun(2,4);
}
总是报错,求问 应该怎么写函数指针啊 | h**6 发帖数: 4160 | 2 这不是静态函数,不同通过双冒号访问。
要么在Calculator类内部调用,
要么把add改成静态函数,
要么定义一个Calculator Object。 | b******b 发帖数: 300 | 3 请问如果定义一个object应该怎么写呢
【在 h**6 的大作中提到】 : 这不是静态函数,不同通过双冒号访问。 : 要么在Calculator类内部调用, : 要么把add改成静态函数, : 要么定义一个Calculator Object。
| j*****y 发帖数: 1071 | 4 加一个地址符号
fun = &Calculator::add;
class Calculator{
public:
int add(int a, int b){
return a+b;
}
int subtraction(int a , int b){
return a-b;
}
};
typedef int(Calculator::*CalPointer)(int,int);
int _tmain(int argc, _TCHAR* argv[])
{
CalPointer fun;
fun = Calculator::add;
}
总是报错,求问 应该怎么写函数指针啊.................
【在 b******b 的大作中提到】 : class Calculator{ : public: : int add(int a, int b){ : return a+b; : } : int subtraction(int a , int b){ : return a-b; : } : : };
| h**6 发帖数: 4160 | 5 class Calculator{
public:
int add(int a, int b){
return a+b;
}
int subtraction(int a , int b){
return a-b;
}
};
typedef int(Calculator::*CalPointer)(int,int);
Calculator calc;
CalPointer func1 = &Calculator::add;
int a = (calc.*func1)(2, 3);
std::function func2 = std::bind(&Calculator::add, &calc, _1, _
2);
int b = func2(4, 5);
printf("a=%d, b=%d\n", a, b); |
|