我们在写C++代码的时候经常碰到使用dynamic_cast进行类型转换的情况,也都知道经过dynamic_cast的转换更加安全,因为dynamic_cast进行了类型检查。 但是可能很多人不知道dynamic_cast是C++ 运行时类型信息(RTTI)机制链条上的一个节点。 RTTI提供了两个操作符和一个类:
dynamic_cast
typeid
type_info
整个RTTI, 作为一...
分类:
其他好文 时间:
2015-03-19 22:13:26
阅读次数:
193
我们在写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
多态性带来了一个问题,就是如何判断一个变量所实际引用的对象的类型 。 C++使用runtime-type information(RTTI),Java 使用 instanceof 操作符。instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。请...
分类:
编程语言 时间:
2015-03-11 12:48:54
阅读次数:
192
RTTI算是C++的一大特性之一了,但也是一个不太好懂的特性。以前一直没有理解清楚RTTI。通过最近的学习,似乎掌握了一点皮毛,这里做一个小总结。首先是《C++编程思想》上的一个例子,由于缺头文件,我把容器改成了vector。
#include
#include
#include
#include
#include //for srand() and rand()
using nam...
分类:
编程语言 时间:
2015-03-03 23:46:24
阅读次数:
398
在C++中通过虚函数,模板编程和RTTI技术可以实现多态。关于虚函数和模板编程不再赘述,下面来介绍RTTI技术。
所谓RTTI技术,是Run Time Type Infomation的缩写,即运行时类型信息。它提供了运行时确定对象类型的方法。对于大多数人而言,可能都不知道在C++中还有RTTI。其实在C++编程中有时候不可避免地需要对对象类型进行动态判断,那么如何确定对象的动态类型呢? 答...
分类:
其他好文 时间:
2015-03-03 23:45:14
阅读次数:
173
今天,我来讲一种在C++编程中实现多态的机制,叫做虚函数。对于多态来说,实际上就是用父类型的指针指向子类的实例,然后通过父类的指针调用子类的成员函数,这种技术使得父类型的指针有多种形态,这是一种常见的泛型技术,除虚函数外,还有模板技术,RTTI技术也属于泛型技术。
为了清楚地理解多态,先看下面这段代码。
#include
using namespace std;
class...
分类:
编程语言 时间:
2015-03-03 20:41:44
阅读次数:
198
反射机制:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
换一种引出反射的说法是:当通过反射与一个未知的类型的对象打交道是,JVM只是简单地检查这个类,看它是属于哪个特定的类(就想RTTI那样)。在用它做其他事情之前必须先加载那个类的Cl...
分类:
编程语言 时间:
2015-02-24 22:15:37
阅读次数:
182
上期我们简单的讲解了利用RTTI来实现多肽,这期我们就来聊聊利用虚函数的方法来实现多肽。1.什么是虚函数在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};,实现多态性,通过指向派生类的基类指针或引用...
分类:
编程语言 时间:
2015-02-21 00:13:33
阅读次数:
259
转自陈浩的博客前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。关于虚函数的使用方法,我在这里...
分类:
编程语言 时间:
2015-02-16 23:29:31
阅读次数:
449
MFC六大核心机制概述 我们选择了C++,主要是因为它够艺术、够自由,使用它我们可以实现各种想法,而MFC将多种可灵活使用的功能封装起来,我们岂能忍受这种“黑盒”操作?于是研究分析MFC的核心机制成为必然。 首先,列出要讲的MFC六大核心机制: 1、MFC程序的初始化。 2、运行时类型识别(RTTI...
分类:
编程语言 时间:
2015-02-15 17:51:11
阅读次数:
360