我们在写C++代码的时候经常碰到使用dynamic_cast进行类型转换的情况,也都知道经过dynamic_cast的转换更加安全,因为dynamic_cast进行了类型检查。 但是可能很多人不知道dynamic_cast是C++ 运行时类型信息(RTTI)机制链条上的一个节点。 RTTI提供了两个操作符和一个类:
dynamic_cast
typeid
type_info
整个RTTI, 作为一...
分类:
其他好文 时间:
2015-03-19 22:11:02
阅读次数:
214
条款46需要类型转换时请为模板定义非成员函数
条款47请使用traits class表现类型信息条款...
分类:
编程语言 时间:
2015-03-13 22:21:38
阅读次数:
248
1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Ne...
1.反射机制基础类(1)反射机制的功能与介绍 审查元数据并收集关于它的类型信息的能力称为反射。元数据(编译以后的最基本数据单元)就是一大堆的表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表,和一个方法定义表等。System.reflection命名空间包含的几个类,允许用户解析这...
泛型是提供给javac编译器使用的,可以限定集合中的输入类型,让编译器挡住源程序中的非法输入,编译器编译带类型说明的集合时会去除掉“类型”信息,使程序运行效率不受影响,对于参数化的泛型类型,getClass()方法的返回值和原始类型完全一样。由于编译生成的字节码会去掉泛型的类型信息,只要能跳过编译器...
分类:
编程语言 时间:
2015-03-04 00:54:09
阅读次数:
211
在C++中通过虚函数,模板编程和RTTI技术可以实现多态。关于虚函数和模板编程不再赘述,下面来介绍RTTI技术。
所谓RTTI技术,是Run Time Type Infomation的缩写,即运行时类型信息。它提供了运行时确定对象类型的方法。对于大多数人而言,可能都不知道在C++中还有RTTI。其实在C++编程中有时候不可避免地需要对对象类型进行动态判断,那么如何确定对象的动态类型呢? 答...
分类:
其他好文 时间:
2015-03-03 23:45:14
阅读次数:
173
对于C++语言作为一种欲与C兼容的语言,C++语言保留了一部分过程式语言和特点,foo_int_int这样的名字包含了函数名、函数参数数量及类型信息,C++语言就是靠这种机制来实现函数重载的。
假设某个函数的原型为:
// 模块A头文件 moduleA.h #ifndef MODULE_A_H #define MODULE_A_H int foo( int x, int y );...
分类:
编程语言 时间:
2015-03-03 22:15:18
阅读次数:
213
Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。...
分类:
编程语言 时间:
2015-02-13 11:38:35
阅读次数:
211
1. 数据类型:通过SQLGetTypeInfo函数来获取ODBC 3.0支持的数据类型信息。由SQLGetTypeInfo返回的数据类型是数据源所支持的数据类型。SQLRETURN SQLGetTypeInfo( SQLHSTMT StatementHandle, SQL...
分类:
数据库 时间:
2015-02-11 18:19:50
阅读次数:
643
1.反射的定义:审查元数据并收集关于它的类型信息的能力。元数据(编译后的最基本的数据单元)是一大堆表,当编译程序集或者模块时,编译器会创建一个类定义表,一个字段定义表和一个方法定义表等。System.Reflection命名空间包含的几个类允许你反射这些源数据表的代码。System.Reflecti...