成员函数指针问题?
代人问的。
下面的代码:
class base
{
public:
static int getf(int (base::** pfun)( int a, int b));
};
class class1 : public base
{
public:
int add( int a, int b){
return a + b;
}
};
class class2 : public base
{
public:
int sub(int a, int b){
return a - b;
}
};
int main()
{
int (base::*const pfa[])(int a, int b) = {
(int (base::*)(int, int)) class1::add,
(int (base::*)(int, int)) class2::sub
};
//int addition = (*pfa[0])(1, 3);
//int subt = (*pfa[1])(3, 1);
return 0;
}
错误信息:
cpplus.cpp:27: cannot convert `class1::add(int, int)' from type `int (*)(int,
int)' to type `int (base::*)(int, int)'
cpplus.cpp:29: cannot convert `class2::sub(int, int)' from type `int (*)(int,
int)' to type `int (base::*)(int, int)'