- 博客(5)
- 资源 (18)
- 收藏
- 关注
原创 C++对象模型之RTTI的实现原理
RTTI是Runtime Type Identification的缩写,意思是运行时类型识别。C++引入这个机制是为了让程序在运行时能根据基类的指针或引用来获得该指针或引用所指的对象的实际类型。但是现在RTTI的类型识别已经不限于此了,它还能通过typeid操作符识别出所有的基本类型(int,指针等)的变量对应的类型。C++通过以下的两个操作提供RTTI:(1)typeid运算符,该运算符返回其表
2015-06-14 03:11:19 23699 13
原创 Linux系统的命令源代码的获取方法
我们知道,Linux是开源的,它自带的功能强大的命令也是开源的,也就是说,我们可以获得这些命令的源代码并研究它。那究竟如何获得系统的命令的源代码呢?命令的源代码是一个软件包为单元的,放在一个软件包的源代码中,若要下载一个命令的源代码,就要把这个命令所属的软件包的源代码都下载下来。命令的源代码就在下载的源代码的相关目录内,通常是src目录,相应的主文件名为cmd.c,其中cmd为具体的命令,如ls命
2015-06-11 00:21:08 23651 3
原创 C++对象模型之详述C++对象的内存布局
本文主要讨论继承对于对象的内存分布的影响,包括:继承后类的对象的成员的布局、继承对于虚函数表的影响、virtual函数机制如何实现、运行时类型识别等。由于在C++中继承的关系比较复杂,所以本文会讨论如下的继承情况:1)单一继承2)多重继承3)重复继承4)单一虚拟继承5)钻石型虚拟继承
2015-06-08 10:16:48 12187 7
原创 C++对象模型之编译器如何处理函数返回一个对象
1、与经验不符的输出我们知道,当发生以下三种情况之一时,对象对应的类的复制构造函数将会被调用:1)对一个对象做显示的初始化操作时2)当对象被当作参数传递给某个函数时3)当函数返回一个类的对象时所以,当我们设计一下函数(普通或成员函数)时,经验告诉我们,出于效率的考虑,应该尽可能返回一个对象的指针或引用,而不是直接返回一个对象。因为在直接返回一个对象可能会引起对象的复制构造过程,这意味着会发生一定量
2015-06-02 00:06:07 3300 3
原创 C++对象模型之复制构造函数的构造操作
复制构造函数用于根据一个已有的对象来构造一个新的对象。1、构造函数何时被调用有三种情况会以一个对象的内容作为另一个类的对象的初值构造一个对象,分别是:1)对一个对象做显示的初始化操作时,如class X { ... };X x;X xx = x; // 或 X xx(x);2)当对象被当作参数传递给某个函数时3)当函数返回一个类的对象时2、默认的成员复制初始化如果class没有提供一个显式的复制构
2015-06-01 02:16:18 2314 5
linux下android apk反编译工具
2014-09-01
实现内存半自动释放的基类Object
2014-02-22
泛型链表——C语言实现
2014-01-24
TCP/IP高效编程-改善网络程序的44个技巧
2013-11-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人