[cpp] (no subject)
Arcane
xjin at eta.com.cn
Tue Sep 5 15:39:55 CST 2006
New Page 1你好,
能不能详细说一下return 一个 void (*pfunc)()方法?我这方面知识比较弱。
谢谢。
Arcane
----- Original Message -----
From: DarkSpy
To: C++ Discuss Group
Sent: Tuesday, September 05, 2006 1:40 PM
Subject: Re: Re: [cpp] (no subject)
Arcane,您好!
你的设计需要修改了.当然,如果真要写,绕几个圈也是可以做到的,例如 return 一个 void (*pfunc)() 的 func 出来
通过他来对外取得 client 需要的接口, 还有其他猥琐的方法, 如 template 也可以办到.
但是建议修改设计.
======== 12:30:40 您在来信中写道: ========
你好,DarkSpy,
由于ButtonCB是用户自定义的,我没有办法保证它的名字不改变,
也就是说myDlg::ButtonCB中的myDlg和ButtonCB这两个名字我都不能保证不变,
只能保证myDlg的基类不变,因此,不好确定btn.callback的参数类型。。
谢谢了
Arcane
----- Original Message -----
From: DarkSpy
To: C++ Discuss Group
Sent: Tuesday, September 05, 2006 10:31 AM
Subject: Re: [cpp] (no subject)
Arcane,您好!
buttoncb 做基类虚函数.
callback参数类型为基类虚函数.呼叫函数的时候 reinterpret_cast 过去
其他顺水推舟.
======== 14:42:19 您在来信中写道: ========
大家好:
最近遇到一个问题,想请大家帮忙。
我想用一个类函数做为某个控件的回掉函数,如:
class button;
class DlgBase {};
class myDlg : public DlgBase {
public:
void ButtonCB();
button btn;
}
现在的问题是,我想用ButtonCB() 作为btn的回掉函数。就是btn.callback(myDlg::ButtonCB);
我想知道callback的参数类型应该是什么?
虽然,这个例子里面,可以用:
typedef void (myDlg::*CB)();
而callback的参数类型就是CB,
但是,问题是myDlg是用户定义的,button是我定义的,我不知道用户会定义出何种DlgBase的派生类,
那么,我的callback的参数类型应该怎么设置?
谢谢
Arcane
+==================================================+
| Nanjing Rep. Office
| Engineering Technology Associates, Inc.
| Room 1401, Huihong Building, 87 Baixia Road,
| Nanjing, 210002, China
| Voice: (025) 84692761 Ext: 8002
| Fax: (025) 84692762
| Email: xjin at eta.com.cn Web: http://www.eta.com
+==================================================+
= = = = = = = = = = = = = = = = = = = = = =
致
礼!
DarkSpy
coneos at 21cn.com
2006-09-05
--------------------------------------------------------------------
_______________________________________________
Cpp mailing list
Cpp at codingnow.com
http://codingnow.com/mailman/listinfo/cpp
= = = = = = = = = = = = = = = = = = = = = =
致
礼!
DarkSpy
coneos at 21cn.com
2006-09-05
------------------------------------------------------------------------------
_______________________________________________
Cpp mailing list
Cpp at codingnow.com
http://codingnow.com/mailman/listinfo/cpp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://codingnow.com/pipermail/cpp/attachments/20060905/039edcc1/attachment-0001.html
More information about the Cpp
mailing list