我正在尝试获取指向特定版本的重载成员函数的指针。这是示例:
class C
{
bool f(int) { ... }
bool f(double) { ... }
bool example()
{
// I want to get the "double" version.
typedef bool (C::*MemberFunctionType)(double);
MemberFunctionType pointer = &C::f; // <- Visual C++ complains
}
};
错误消息是“错误 C2440: 'initializing' : cannot convert from 'overloaded-function' to 'MemberFunctionType'”
如果f
没有重载,则此方法有效,但在上面的示例中无效。有什么建议吗?
编辑
请注意,上面的代码并没有反映我的实际问题,即我忘记了一个“const”——这就是公认的答案所指出的。不过,我会保持原样,因为我认为这个问题可能发生在其他人身上。