类成员函数指针的问题
按照Lippman的《深入探索C++对象模型》,以下代码应该是合法的:
#include "stdafx.h"
class CFunctionPtr
{
public:
void InvokeMe(char *str)
{
char c = *str;
}
};
int main(int argc, char* argv[])
{
CFunctionPtr *p = new CFunctionPtr;
void(CFunctionPtr::*ptrInvoke)(char*) = &CFunctionPtr::InvokeMe;
p->*ptrInvoke("qwsxz");
return 0;
}
但是在VC6+SP5环境下编译,报:
error C2064: term does not evaluate to a function
为什么?
#include "stdafx.h"
class CFunctionPtr
{
public:
void InvokeMe(char *str)
{
char c = *str;
}
};
int main(int argc, char* argv[])
{
CFunctionPtr *p = new CFunctionPtr;
void(CFunctionPtr::*ptrInvoke)(char*) = &CFunctionPtr::InvokeMe;
p->*ptrInvoke("qwsxz");
return 0;
}
但是在VC6+SP5环境下编译,报:
error C2064: term does not evaluate to a function
为什么?
...全文
相关推荐
C++类成员函数指针[项目源码]
本文详细介绍了C++中类成员函数指针的使用方法,包括静态和非静态成员函数指针的语法及实例。文章首先指出直接像C语言那样使用类成员函数指针会报错,并提供了两种解决方法:将非静态成员方法改为静态方法或正确使用类成员函数指针。接着,文章详细讲解了非静态成员方法函数指针和成员方法函数指针的语法,并通过实例代码展示了如何在实际编程中使用这些指针。实例代码包括静态函数指针的使用、成员函数指针的使用以及通过成员函数调用其他成员方法的示例。
C++Hook(钩子)编程,通过内联汇编,使类成员函数代替全局函数(静态函数)[收集].pdf
C++Hook(钩子)编程,通过内联汇编,使类成员函数代替全局函数(静态函数)[收集].pdf
贴子中的函数指针无法编译的例子的附件
贴子中的函数指针无法编译的例子的附件 VC6工程文件
APIHook、InlineHook库,使用C++11编写,可将回调函数绑定到类成员函数
APIHook、InlineHook库,使用C++11编写,可将回调函数绑定到类成员函数。代码风格良好,适合学习。
vc回调函数 类子,用来演示怎样将类中的函数作为一个回调函数
回调函数的小类子,用来演示怎样将类中的函数作为一个回调函数


