在C 中实现.NET风格的委托.pdfVIP

  • 1
  • 0
  • 约1.02万字
  • 约 8页
  • 2018-03-26 发布于河南
  • 举报
在C 中实现.NET风格的委托

在C++中实现.NET风格的委托 在。NET 中,委托被用来实现事件处理。它允许一个类(方法)先注册一个事件,然后当 此事件被引发时此注册的方法就会被调用。在非。Net 环境的C++中,这并不是一件容易的 事,尤其是类的非静态成员函数,要做为回调函数就更困难了。本文的目标就是给出一种解 决方案, 使类的静态成员函数,非静态成员函数,还有类非成员函数都能像回调函数一样 使用。这个实现非常重视类型安全,为了保持类型安全我们省去了某些特性的实现。 什么是委托? 。NET 框架中对委托的定义如下: 委托是一个可以保持对某个方法引用的类。不同于其它类,委托类有自己的签名(返 回值,参数类型,个数),并且只能引用与其签名匹配的方法。委托其实可以看成一个类型 安全的函数指针或回调函数。 一个提供了委托的类允许其它函数或类在此委托上注册事件处理函数。然后当这个类的 委托被执行时,就会遍历其处理函数列表,逐个调用,并传入传给委托的信息。而提供委托 的那个类不需要知道委托注册了多少处理函数,委托自己会处理这一切。 正文 函数对象(functor)概述 我们用函数对象(functor, function object)来实现C++中的委托。这允许一个非静态 成员

文档评论(0)

1亿VIP精品文档

相关文档