【发布时间】:2011-07-27 13:43:52
【问题描述】:
我在一个类中有一个指针函数,它在类外定义并用作回调。
课程是这样的
class A
{
void CreateGrid(OWindow *win,int x,int y);
Otkobject *GetIcon(void *data,Otkobject *obj,int x)
}
我已经像这样定义了GetIcon 函数
Otkobject *A::GetIcon(oid *data,Otkobject *obj,int x){
//statements
}
为此,我遇到了错误。
然后我尝试了
Otkobject A::*GetIcon(void *data,Otkobject *obj,int x){
//statements
}
我正在获取函数名称并使用回调。这个函数指针怎么用?
【问题讨论】:
-
你能告诉我们你遇到了什么错误吗?
-
两件事 - Otkobject 的声明是什么,您的定义中的
oid以及您的问题或代码中的类拼写错误中缺少的分号? -
在
class A的定义末尾添加一个分号。您第一次尝试定义GetIcon是正确的,只是您需要删除分号并添加函数体。 -
参数类型 Otkobject* (A::)(void data,Otkobject *obj,int x ) 与 Otkobject 不匹配 (*)(void *data,Otkobject * obj,int x)
-
另外,你说的是“函数指针”还是返回指针的函数?