-1
我正在嘗試一個代碼片段,並在VS2010上遇到以下錯誤。從成員函數傳遞函數指針
Error 1 error C2276: '&' : illegal operation on bound member function expression Line 19
以下是我的代碼:
#include<iostream>
using namespace std;
class a
{
public:
void add(int x)
{
cout<<x+x<<endl;
}
void mult(int x)
{
cout<<x*x<<endl;
}
typedef void (a::*fptr)(int);
fptr retFuncP(char ch)
{
if(ch=='+')
{
return &add;
}
else
{
return &mult;
}
}
};
int main()
{
a objA;
void (a::*fptr)(int) = objA.retFuncP('+');
(objA.*fptr)(3);
cin.ignore();
}
使用void (a::*retFuncP(char ch))(int x)
作爲替代並沒有解決問題爲好。這似乎是錯誤的?