
C++ 委托
独立游戏开发指南
这个作者很懒,什么都没留下…
展开
-
C++实现委托机制之完整代码实现
头文件 MyDelegate.h 代码如下:#pragma once#include #include #include namespace Delegate{ // IDelegate 提供接口的基类 template class IDelegate { public: IDelegate(){} virtual ~IDelegate(){} vi转载 2017-05-03 18:59:14 · 326 阅读 · 0 评论 -
C++实现委托机制(三)——lambda表达式封装
1.引言: 其实原本没打算写这一章的,不过最后想了想,嗯还是把lambda表达式也一并封装进去,让这个委托也适应lambda表达式的注册。不过在之前还是需要先了解lambda表达式。2.lambda表达式: 如果大家还有对lambda表达式不了解的可以先去了解lambda表达式的基本语法和用法。转载 2017-05-03 18:55:28 · 528 阅读 · 0 评论 -
C++ Lambda表达式基本用法
创建一个匿名函数并执行。Objective-C采用的是上尖号^,而C++ 11采用的是配对的方括号[]。实例如下:123456789#include usingnamespace std; intmain(){ [转载 2017-05-03 18:46:49 · 435 阅读 · 0 评论 -
C++教程之lambda表达式
什么是Lambda?C++ 11加入了一个非常重要的特性——Lambda表达式。营里(戴维营)的兄弟都对Objective-C很熟悉,许多人多block情有独钟,将各种回调函数、代理通通都用它来实现。甚至有人选择用FBKVOController、BlocksKit等开源框架将KVO、控件事件处理都改为通过block解决。原因就是简单、方便、直观,函数的定义和使用出现在同一个地方。这里的La转载 2017-05-03 18:44:55 · 3461 阅读 · 0 评论 -
C++11 lambda 表达式解析
C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看。本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式。很多语言都提供了 lambda 表达式,如 Python,Java 8。lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一转载 2017-05-03 18:43:04 · 338 阅读 · 0 评论 -
C++实现委托机制之完整代码实现(二)
头文件 MyDelegate.h 代码如下:#include #include #include templateclass IDelegate{public: IDelegate(){} virtual ~IDelegate(){} virtual bool isType(const std::type_info& _type) = 0; virtual ReturnTy原创 2017-05-02 18:48:00 · 481 阅读 · 0 评论 -
C++实现委托机制(二)
1.引言: 上一篇文章已经介绍了如何构建一个无参数无返回值的函数指针的委托,这篇文章将对上一文章所述委托进行扩展,使得可以注册任意函数指针,不过再讲篇内容之前先要介绍一下实现这个功能所需要了解的C++11的一个新特性———可变参数模板。2.可变参数模板: template(模板)是源于将类型和实现(算法)分离开的思想,转载 2017-05-02 18:41:07 · 416 阅读 · 2 评论 -
C++ -- variadic template (可变参数模板)
C++11 语言核心的改进中,最为关注的有 rvalue reference (这里有一篇拙作),lambda,variadic template。rvalue 规则稍微复杂,但一旦理解和记住了,应用上就没有什么困难。lambda 其实是一个“很自然”的语言设施,除了语法稍显诡异之外,习惯了就能马上用上,而且是能广泛用上的好东西。variadic template 这个新特性不像前两者,它本身转载 2017-05-02 18:31:12 · 1220 阅读 · 0 评论 -
C++实现委托机制之完整代码实现(一)
头文件 MyDelegate.h 代码如下:#include #include #include class IDelegate { public: virtual ~IDelegate() { } virtual bool isType(const type_info& _type) = 0; virtual void invoke() =原创 2017-04-24 17:37:29 · 391 阅读 · 0 评论 -
C++实现委托机制(一)
1.引言: 如果你接触过C#,你就会觉得C#中的delegate(委托)十分灵巧,它的用法上和C\C++的函数指针很像,但是却又比C\C++的函数指针更加灵活。并且委托可以一对多,也就是可以注册多个函数,甚至是某个类的非静态成员函数。而实现事件消息机制【1】也十分依赖于委托机制。基于这样的目的,我们试着在C++上封装出这样的一个委托机制。【1转载 2017-04-24 17:31:59 · 359 阅读 · 0 评论 -
C++普通函数指针与成员函数指针实例解析
C++的函数指针(function pointer)是通过指向函数的指针间接调用函数。相信很多人对指向一般函数的函数指针使用的比较多,而对指向类成员函数的函数指针则比较陌生。本文即对C++普通函数指针与成员函数指针进行实例解析。一、普通函数指针很多新手对typedef void (*funcptr)()这个语句疑惑了,究竟是什么意思?其实这也是C/c++的基础。转载 2017-04-21 15:45:12 · 722 阅读 · 0 评论 -
C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
1.虚函数(impure virtual) C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。 子类可以重写父类的虚函数实现子类的特殊化。 如下就是一个父类中的虚函数:class A{public: virtual void out2(string s) { cout"A(out2转载 2017-04-21 15:31:17 · 414 阅读 · 0 评论 -
C++中的RTTI机制详解
前言RTTI是”Runtime Type Information”的缩写,意思是运行时类型信息,它提供了运行时确定对象类型的方法。RTTI并不是什么新的东西,很早就有了这个技术,但是,在实际应用中使用的比较少而已。而我这里就是对RTTI进行总结,今天我没有用到,并不代表这个东西没用。学无止境,先从typeid函数开始讲起。typeid函数typeid 是 C++ 的关键字之一,转载 2017-04-21 15:29:23 · 591 阅读 · 0 评论