类型识别分为两种:一种以编译时类型识别,一种是运行时类型识别;编译时类型识别:static_cast;运行时类型识别(RTTI),C++通过下面连个操作符提供RTTi;1)dynamic_cast操作符,将基类类型的指针或者引用安全地转换为派生类型的指针或者引用;2)typeid操作符,返回指针或者...
分类:
编程语言 时间:
2014-10-09 13:22:43
阅读次数:
253
这里我们给出一个使用RTTi的例子;考虑一个类层次,我们希望为它实现 operator==相等操作符:如果两个对象的给定数据成员集合的值相同,则它们就相等。每个派生类可以增加自己的成员,当然,测试相等的时候也要包含这些数据。对于类层次中有两个类型(一个基类,一个派生类),按照一般的方法,我们就需要实...
分类:
编程语言 时间:
2014-10-09 12:54:53
阅读次数:
381
有下面一个继承体系,我们需要为其添加"=="操作符,该怎么办呢 ??class Animal{};class Cat : public Animal{};class Dog : public Animal{};如果我们为每个类重载"=="运算符,那么我们还需要重载子类与基类之间的"=="运算符,这样...
分类:
编程语言 时间:
2014-10-09 02:59:57
阅读次数:
187
1 关于多态,面向对象的几个要点作为面向对象的程序员,这个问题是必须要弄清楚的,网上、教科书上都是标准答案,关键是理解内涵哦。2 关于虚函数表和RTTI 这个Inside C++ Object Model讲的相当明确虚函数表的第一项就是关于RTTI的,RTTI就是Run Time Type Iden...
分类:
编程语言 时间:
2014-09-10 22:17:01
阅读次数:
243
由之前动态代理的学习再次接触到反射这个知识点,第二次接触了所以做了一些稍微深入的了解。那么,对于反射这部分的内容我打算分三篇博客来总结。本篇博客先对反射做一个大概的了解,包括反射有关的RTTI、定义的理解以及涉及到的其他知识的简介。
回顾
java之前我接触反射这个知识,是在大话设计中的抽象工厂模式里,通过反射+配置文件来优化抽象工厂提高其应对需求变更的灵活性。当时对于反射的认知仅...
分类:
编程语言 时间:
2014-08-27 16:42:48
阅读次数:
208
转自:http://blog.csdn.net/mannhello/article/details/5217954RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI...
分类:
编程语言 时间:
2014-08-27 14:26:28
阅读次数:
323
1.编程范式 编程范式是指计算机编程的基本风格,C++可容纳多种程度范式,如面向对象编程、泛型编程及传统的过程式编程。2.与C相比较 C++在C语言的基础上新加的特性如下: a.类和对象、继承 b.多态、虚函数和RTTI c.函数重载 d.引用变量 e.泛型编程 f.异常机制 g....
分类:
编程语言 时间:
2014-08-22 00:01:55
阅读次数:
294
特殊工具与技术--运行时类型识别[续] 三.RTTI的使用 当比较两个派生类对象的时候,我们希望比较可能特定于派生类的数据成员.如果形参是基类引用,就只能比较基类中出现的成员,我们不能访问在派生类中但不在基类中出现的成员. 因此我们可以使用RTTI,在试图比较不同类型的对象时返回假(false)。 我们将定义单个相等操作符。每个类定义一个虚函数 equal,该函数首先将操作数强制转换为正确的类型。...
分类:
编程语言 时间:
2014-08-13 22:36:07
阅读次数:
383
1、理解操作系统内部运作及各种规范与协议的基础层面2、沉淀历练+扎实的基础才能浮升,开始抽象的思考,进行高层次的开发3、任何工程领域之前身(或背后)一定有其科学研究或尖端研究4、业界要的是持续稳定,保证投资和优势,MFC保持向后的兼容性也在考验着微软的智能5、MFC的宏,自制的RTTI机制,完全符合...
分类:
其他好文 时间:
2014-08-13 00:59:54
阅读次数:
274