哪里用得着如此去使用这个方法,你既然已得到了hello的一个对象,使用hello.function不就可以操作了吗,当然,此里应该把function声明为公共类型的变量。
解决方案 »
- 用ExportAsFixedFormat方法将PPT转为PDF的问题
- 可以删除list控件的某一整列吗?
- 以全局方式hook CopyFileW?
- CString存储Unicode串出现多余字节问题
- 散分:datagrid不好用,改用ListCtrl!
- 关于CString 的问题,在线等,立即给分
- 两台分别在两个局域网之内的机器的通信问题,很奇怪为什么连不上
- c++的英文教材我该如何学?
- 请问谁有比help workshop 更好的编辑帮助文挡的工具,要能够识别中文的!
- vc 二维数组 转化matlab格式方法
- 请问SetTimer(1,10,0).数字是什么意思?(初学者,没分了..)
- 让控件不可见。
程序中有一个循环,该循环要根据一BOOL变量(flag)去执行函数,
如果 flag==TRUE 就执行 FunA,如果 flag==FALSE 就执行 FunB,
如果循环很多次,那么肯定要判断很多次,代码效率肯定不好,
如果在循环外判断一次然后将函数指针指向FunA或FunB,就不一样了。To:allex
定义为全局变量<void (Hello::*pfun)();>也不行。提示(*pfun)();有两个错误:
error C2171: '*' : illegal on operands of type 'void (__thiscall Hello::*)(void)
error C2064: term does not evaluate to a function
error C2440: '=' : cannot convert from 'void (__thiscall Hello::*)(void)' to 'void (__cdecl *)(void)'你干脆把我上面那段程序COPY过去调试一下吧,OK?
#include "stdio.h"class Hello
{
public:
static void function(); // 呵呵。
void test();
};void Hello::function()
{
printf("Hello World!\n");
}void Hello::test()
{
void (*pfun)(); // 编译提示此处错误
pfun = function;
(*pfun)(); // 编译提示此处错误
}void main()
{
Hello hello;
hello.test();
}
#include "stdio.h"class Hello
{
public:
static void function(); // 呵呵。
void test();
};void Hello::function()
{
printf("Hello World!\n");
}void Hello::test()
{
void (*pfun)(); // 编译提示此处错误
pfun = function;
(*pfun)(); // 编译提示此处错误
}void main()
{
Hello hello;
hello.test();
}