您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:43 来源:vckbase.com

本文章共5959字,分4页,当前第4页,快速翻页:
 
MumbleArgs args;

args.a = 1;

args.b = 2;

// etc.

m_eventMgr.Raise(IMyEvents::Mumble(&args));

  还有一种选择,你可以实现 DEFINE_EVENT3。但是记住:仿函数对象通过值传递的,所以它们应该很小。当可以传递指针时,为什么要在堆区和栈区来回拷贝一大堆参数呢?如果事件处理器需要返回值,也可以借助结构。为了简单起见,我让事件处理器返回 void。
逆@风@者
  经常有程序员会问仿函数会不会带来太大的额外开销。事实上,仿函数通常比函数更有效率。理由是它是内联的。当你在 C 中传递指向函数的指针时,即使你将函数定义为内联,它就是一个指针。你不能通过传值的方式来传递一个函数。但是当你传递一个对象实例到某个模板函数时,如果你象那样定义函数,编译器产生的所有东西都是内联的。对于事件来说,通过指针仍然只有一个函数调用,它发生在函数 operator 调用虚拟 OnFoo 处理器的时候。


编程愉快!


您的提问和评论可发送到 Paul 的信箱:cppqa@microsoft.com.
  作者简介
  Paul DiLascia
是一名自由作家,软件咨询顾问以及大型 Web/UI 的设计师。他是《Writing Reusable Windows Code in C 》书(Addison-Wesley, 1992)的作者。业余时间他开发 PixeLib,这是一个 MFC 类库,从 Paul 的网站 http://www.dilascia.com 可以获得这个类库。
. 本文出自 MSDN Magazine March 2006 期刊,可通过当地报摊获得,或者最好是 订阅
本文由 VCKBASE MTT 翻译
 

本文章更多内容<<上一页 - 1 - 2 - 3 - 4
相关文章

用鼠标手势动作来发送命令
在VC中使用 Flash 美化你的程序
更改屏幕显示数据的作弊程序
通过串口收发短消息(上)
C 程序的外部变量与函数
如何用代码动态添加控件
一个关于#include的问题
使用免费界面换肤软件 USkin
把 C# 语言开发的控件内嵌在网页里面
支持数据项查找功能的树控制(CTreeCtrl)类
浅谈PDFlib中文输出(四)PDFlib 接收的几种
后缀表达式求值及校验
用ATL开发复合控件
关于 IDispatch 接口的 LPDispatch 属性的实
获得 Win32 窗口句柄的更好的方法
从 ADO 迁移到 ADO.NET(一)
利用VC++开发ASP图像处理组件(二)
可设置单元格颜色的ClistCtrl类
IP Messenger 详细分析
C :使用 Visual C 2005 的现代语言特色

相关评论


本文章所属分类:首页 VC++

  热门关键字: