在上文 在C++中实现事件(委托) 中我们实现的C#里委托方式的事件处理, 虽然使用很方便,但是感觉似乎少了一点C#的味道, 下面我们尝试把它改成真正的C#版。 其实要改成真正的C#版,我们主要要做2件事, 一是吧CEventHandler放到外面,可以让外部直接构造, 二是实现 ...
在上文 在C++中实现事件(委托) 中我们实现的C#里委托方式的事件处理, 虽然使用很方便,但是感觉似乎少了一点C#的味道, 下面我们尝试把它改成真正的C#版。 其实要改成真正的C#版,我们主要要做2件事, 一是吧CEventHandler放到外面,可以让外部直接构造, 二是实现 ...
1、C函数的调用和返回 要理解C++异常机制实现之前,首先要了解一个函数的调用和返回机制,这里面就要涉及到ESP和EBP寄存器。我们先看一下函数调用和返回的流程。 函数栈架构主要承载着以下几个部分: 1、传递参数:通常,函数的调用参数总是在这个函数栈框架的最 ...
NET下的很多技术都是基于反射机制来实现的,反射让.NET平台下的语言变得得心应手。最简单的,比如枚举类型,我们我可以很容易的获得一个枚举变量的数值以及其名称字符串。 可是,在C++中,枚举变量本质上和一个整形变量没有区别,我们很难获取一个枚举变量的名称字符串。 其实在C++中,我们可以通过宏 ...
本篇从 C++ 初学者遇到的一个有趣的问题开始。 有趣的问题 考虑下面的 C++ 程序: class A { void func(){} }; class B:public A { void func(){} }; int main(void ...
对于博客,从来是默默的转,最近终于有点时间可以写些自己的东西(其实也还要忙着准备找工呢),写出来与仅仅知道那么回事绝对大不一样,写也是学习的过程,不过向来多关注于功能实现,对一些基础概念把握不准确,望各位拍砖,不废话了。 什么是回调?通常发生在需要两个角色即调用者与实现 ...
完整代码 ...
C++本身是不支持反射机制的,而在最近项目中很多地方用到了工厂类,这样就增加了代码中分支语句,降低了代码的可读性,于是就模仿C#中的反射机制,用函数指针自己实现了C++的反射。下面是实现时写的demo介绍。 主要特点有以下几点: 用map保存了字符串到动态类生成的函数指针的映射 ...
是虚表+虚指针。 这里有一篇博客写的很全面,可以参考一下c++多态实现的机制 1.虚表 声明了 ...