社区
C++ 语言
帖子详情
回调类成员函数的问题(分不够再加)
higter
2006-09-21 04:15:44
typedef void (Func)(int x);
void _func(Func *fc = NULL)
{
}
以上不能更改现有问题如下
class A
{
static void aa(int a);
void bb(){
_func(aa);
};
};
这个是没问题的,
我想aa不申请为static,以便访问A的其它成员,怎么办??
...全文
159
10
打赏
收藏
回调类成员函数的问题(分不够再加)
typedef void (Func)(int x); void _func(Func *fc = NULL) { } 以上不能更改现有问题如下 class A { static void aa(int a); void bb(){ _func(aa); }; }; 这个是没问题的, 我想aa不申请为static,以便访问A的其它成员,怎么办??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
higter
2006-09-22
打赏
举报
回复
_func不是我不想改,而是我改不了,定死了,
Golfen
2006-09-21
打赏
举报
回复
或者你把 _func函数加一个参数,给它传对象指针;然后typedef void (A::*Func)(int x);
void _func(A *pa, Func *fc) {
(pa->*fc)(aa);
}
foring
2006-09-21
打赏
举报
回复
尝试用成员函数的指针, typedef void (ClassName::*pfnMember)( int i )看看
superarhow
2006-09-21
打赏
举报
回复
广告:)
请看偶滴blog上:http://blog.csdn.net/superarhow/archive/2006/07/10/898261.aspx
OOPhaisky
2006-09-21
打赏
举报
回复
我想aa不申请为static,以便访问A的其它成员,怎么办??
----------------------------------------------------------
非static成员函数一定要绑定到一个对象上的,所以无法实现楼主的要求。
晨星
2006-09-21
打赏
举报
回复
要不你用全局变量来传递对象地址?
千成别说这个主意是俺出的。-_-
晨星
2006-09-21
打赏
举报
回复
而且感觉设计上也有问题:static函数本身跟对非静态成员是不会有直接联系的。
如果是需要一个辅助对象才能完成的任务,那很简单,在这个static函数中定义一个类的对象,然后在上面调它的方法就是了;
如果根本不需要辅对象,那有什么必要访问非静态成员?所有跟对象状态无关的成员函数都应该是静态的。
HappyTree
2006-09-21
打赏
举报
回复
不是static,就必然涉及到this指针,对函数指针里没有这个指针参数,感觉没有办法实现。
晨星
2006-09-21
打赏
举报
回复
而且你那个int参数说不定还有别的用处。
晨星
2006-09-21
打赏
举报
回复
不能,类的非静态成员函数指针不能转为一般的函数指针。
要访问类的非静态成员,说明你要使用对象,而你的回调方法中没有提供传递对象指针的机制,既使让你用也没法用啊。没有对象,讨论非静态成员的访问是没有意义的。
除非,你把一个对象的this指针强制转成int型,从那个int参数中传进去,进去后再恢复出原来的类型,然后访问它的成员。-_-不过这种方法不能跨平台,因为int不一定能放得下一个指针类型。:(
c++
类
成员函数
作为
回调
函数
最近又仔细学了会,感觉
回调
函数,我认为就是将一个函数指针A作为参数传入另外一个函数B,然后在函数B中调用函数A。 普通
回调
具体先看一个简单的例子: #include void printWelcome(int len) { printf(...
C++中
类
成员函数
作为
回调
函数
回调
函数是基于C编程的Windows SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为
回调
函数,但是如果试图直接使用C++的
成员函数
作为
回调
函数将发生错误,甚至编译就不能通过。 普通的C++
成员函数
都隐含了...
c++
回调
函数的几种写法(注意
成员函数
)
类
的
成员函数
实际上是有一个隐含的void*形参的(由编译器给自动加上的),这个实际上就是所属
类
给它传递的this指针,不然该
成员函数
怎么不加前缀就能访问
类
中的其它成员的嘛。 目标 实现Add
类
向MainWindow
类
注册一...
C++
回调
函数
如果你把函数的指针(地址)作为参数传递给另一个...前面函数指针的方式作为
回调
函数的一种方式,可以同时用于C和C++,下面介绍另外的一些方式,因为C++引入了对象的概念,可以使用
类
的成员和静态函数作为
回调
函数。
c++
类
成员函数
作
回调
函数
今天写了一个
类
,
类
中用到了创建线程函数:_beginthreadex() (windows下的创建线程函数,这其实是一个C标准的线程函数,但跟windows联系紧密,只要是为...) 以下是一个
成员函数
的某段代码: HANDLE hth; unsigned
C++ 语言
64,650
社区成员
250,478
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章