本文主要讨论继承对于对象的内存分布的影响,包括:继承后类的对象的成员的布局、继承对于虚函数表的影响、virtual函数机制如何实现、运行时类型识别等。由于在C++中继承的关系比较复杂,所以本文会讨论如下的继承情况:
1)单一继承
2)多重继承
3)重复继承
4)单一虚拟继承
5)钻石型虚拟继承...
分类:
编程语言 时间:
2015-06-08 11:44:14
阅读次数:
177
dynamic_cast是四个强制类型转换操作符中最特殊的一个,它支持运行时识别指针或引用。>>>>>>>>>>>编译器的RTTI设置>>>>>>>>>>>dynamic_cast提供RTTI(Run-Time Type Information),也就是运行时类型识别。它对编译器有要求,需要编译器启...
分类:
编程语言 时间:
2015-05-20 22:10:54
阅读次数:
180
使用 ls -aldrwxr-xr-x. 4 root root 100 Apr 26 15:05 cpulrwxrwxrwx. 1 root root 13 Apr 26 15:05 fd -> /proc/self/fdbrw-rw----. 1 root...
分类:
系统相关 时间:
2015-04-17 13:28:53
阅读次数:
141
忙了大半个学期的指纹、掌纹处理,这里稍微整理出部分
分类:
编程语言 时间:
2015-03-13 21:59:18
阅读次数:
343
MFC六大核心机制概述 我们选择了C++,主要是因为它够艺术、够自由,使用它我们可以实现各种想法,而MFC将多种可灵活使用的功能封装起来,我们岂能忍受这种“黑盒”操作?于是研究分析MFC的核心机制成为必然。 首先,列出要讲的MFC六大核心机制: 1、MFC程序的初始化。 2、运行时类型识别(RTTI...
分类:
编程语言 时间:
2015-02-15 17:51:11
阅读次数:
360
面向对象的分析模型由功能模型、分析对象模型、动态模型三个独立的模型组成,从软件的需求功能来看分析类可以划分为实体类、边界类和控制类三种类型。识别分析类、控制类和实体类需要充分理解系统内部的行为。一个参与者与一个用例之间的交互或通信关联对应一个边界类;控制类负责协调边界类和实体类,负责接收边界累的.....
分类:
其他好文 时间:
2015-02-08 15:16:01
阅读次数:
114
RTTI的工作原理、使用getClass()方法获取类信息、使用类标记、使用关键字instanceof判断所属类、
分类:
其他好文 时间:
2015-01-20 22:08:17
阅读次数:
122
RTTI
通过运行时类型识别(RTTI),程序能够使用基类的指针或引用来检索这些指针或引用所指对象的实际派生类型。通过下面两个操作符提供
RTTI:
1. typeid 操作符,返回指针或引用所指对象的实际类型。
2. dynamic_cast 操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。
这些操作符只为带有一个或多个虚函数的类返回动态类型信息,对于...
分类:
其他好文 时间:
2015-01-13 19:58:02
阅读次数:
242
RTTI是Runtime Type Identification的缩写,中文名为“运行时类型识别”。
MFC早在编译器支持RTTI之前,就有了这种能力。我们现在要以相同的手法,在Console程序中仿真出来。我希望我的类库具备IsKindOf 的能力,能在执行期侦测到某个对象是否属于某个类,并传回TRUE 或 FALSE。以形状 Shape为例 ,我希望:
即 长方...
分类:
编程语言 时间:
2015-01-01 17:21:47
阅读次数:
275
运行时类型识别(run-time type identification,RTTI) 由两个运算符实现: 1.dynamic_cast 运算符 2.typeid运算符 dynamic_cast 的使用形式如下: a)dynamic_cast(e) b)dynamic_cast(e) c)...
分类:
其他好文 时间:
2014-12-15 23:14:10
阅读次数:
208