在C ++中是否可以创建一个未在类A
中定义但可以像方法指针一样对待的函数?例如:
typedef bool (A::*MethodType)(int a);
MethodType g_someMethod = &A::SomeMethod;
现在,我想创建一个类型为AnotherMethod
的新函数MethodType
。我试图做以下事情:
bool A_AnotherMethod(A* _this, int a) {
std::cout << __FUNCTION__ << "\n";
return true;
}
MethodType g_someMethod = A_AnotherMethod;
// ...
(this->*g_someMethod )(42);
但是我得到了
error C2440: '=' : cannot convert from 'bool (__cdecl *)(A *,int)' to 'bool (__cdecl A::* )(int)'
如何正确地做到这一点?
答案 0 :(得分:1)
P.S。方法指针在C ++中具有笨拙的语法,很少使用。但这就是用语言定义它们的方式。