CompilerTech

导航

2011年9月2日

static_cast , dynamic_cast , reindivter_cast , const_cast CSND 纪要

摘要: static_cast转换类似于C/C++里面的强制类型转换。 dynamic_cast转换是根据基类派生类的原则进行转换,把一个派生类转换为基类使用这个转换。 const_cast转换是去掉const变量的const--------------------------------------------------------------------------------------------------dynamic_cast: 通常在基类和派生类之间转换时使用,run-time cast const_cast: 主要针对const和volatile的转换. st... 阅读全文

posted @ 2011-09-02 22:26 compilerTech 阅读(246) 评论(0) 推荐(0) 编辑

C++标准转换运算符static_cast

摘要: C++标准转换运算符static_caststatic_cast <new_type> (expression)虽然const_cast是用来去除变量的const限定,但是static_cast却不是用来去除变量的static引用。其实这是很容易理解的,static决定的是一个变量的作用域和生命周期,比如:在一个文件中将变量定义为static,则说明这个变量只能在本Package中使用;在方法中定义一个static变量,该变量在程序开始存在直到程序结束;类中定义一个static成员,该成员随类的第一个对象出现时出现,并且可以被该类的所有对象所使用。对static限定的改变必然会造成 阅读全文

posted @ 2011-09-02 22:16 compilerTech 阅读(209) 评论(0) 推荐(0) 编辑

static_cast , dynamic_cast , reindivter_cast , const_cast

摘要: C 风格(C-style)强制转型如下:(T) exdivssion // cast exdivssion to be of typeT函数风格(Function-style)强制转型使用这样的语法:T(exdivssion) // cast exdivssion to be of type T这两种形式之间没有本质上的不同,它纯粹就是一个把括号放在哪的问题。我把这两种形式称为旧风格(old-style)的强制转型。使用标准C++的类型转换符:static_cast、dynamic_cast、reinterdivt_cast、和const_cast。3.1 static_cast用法:stat 阅读全文

posted @ 2011-09-02 22:11 compilerTech 阅读(282) 评论(0) 推荐(1) 编辑

static_cast reinterpret_cast

摘要: static_cast 用法:static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态类型检查,所以是不安全的。 ②用于基本数据类型之间的转换,如把int转换成char,把int转换成enum。这种转换的安全性也要开发人员来保证。 ③把空指针转换.. 阅读全文

posted @ 2011-09-02 21:48 compilerTech 阅读(245) 评论(0) 推荐(0) 编辑

static_cast<>

摘要: static_cast<>揭密 作者:Sam NG译者:小刀人 原文链接:What static_cast<> is actually doing 本文讨论static_cast<> 和 reinterpret_cast<>。介绍 大多程序员在学C++前都学过C,并且习惯于C风格(类型)转换。当写C++(程序)时,有时候我们在使用static_cast<>和reinterpret_cast<>时可能会有点模糊。在本文中,我将说明static_cast<>实际上做了什么,并且指... 阅读全文

posted @ 2011-09-02 21:38 compilerTech 阅读(796) 评论(1) 推荐(0) 编辑

generic or template

摘要: If you compare the CLR generics proposed by Microsoft Research (seehttp://research.microsoft.com/projec...n/generics.pdf) to C++templates, you'll find some differences:* CLR Generics are supported in the CLR, with instantiation occuring atruntime. Full metadata exists for the generic type, and g 阅读全文

posted @ 2011-09-02 15:32 compilerTech 阅读(227) 评论(0) 推荐(0) 编辑