C++四种新式转换_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > C++四种新式转换

C++四种新式转换

 2012/12/16 17:23:55  把酒泯恩仇  程序员俱乐部  我要评论(0)
  • 摘要:感觉在面试中,总是被问及转换类型问题,所以在大面试来临之前,复习一下,其实之前也没有怎么区分,因为实际中,特别是编一个小程序,我不是经常在用。以下是C++的四种转换机制:viewplaincopytoclipboardprint?const_cast<T>(expression)dynamic_cast<T>(expression)reinterpret_cast<T>(expression)static_cast<T>(expression
  • 标签:c++
感觉在面试中,总是被问及转换类型问题,所以在大面试来临之前,复习一下,其实之前也没有怎么区分,因为实际中,特别是编一个小程序,我不是经常在用。

以下是C++的四种转换机制:

view plaincopy to clipboardprint?
const_cast<T> ( expression )  
dynamic_cast<T> ( expression )  
reinterpret_cast<T> ( expression )  
static_cast<T> ( expression )  

const_cast通常被用来将对象的常量性质转除。它也是唯一有此功能的C++-Style转型caozuofu.html" target="_blank">操作符。其意思是将一个const转化为non-const。
dynamic_cast主要用来执行”安全向下转型“,也就是用来决定某对象是否归属继承体系中的某个类型。它也是唯一无法由旧式语法执行的动作,也是唯一可能耗费重大运行成本的转型动作。
reinterpret_cast意图执行低级转型,实际动作可能取决编译器,这也就是表明它不可移植。
static_cast用来强迫隐式转换,例如将non-const对象专为const对象,或将int转换成double等等,它也可以用来执行上述多种类型的反向转换,例如将void*指针专为typed指针,将pointer-to-base转为pointer-to-derived。但无法将const转为non-const这个只有const_cast才能做到。
注:文本来自《Effective C++》



-----------------打造高质量的文章 更多关注 把酒泯恩仇---------------

为了打造高质量的文章,请  推荐  一下吧。。。。谢谢了,请关注我后续的文章,会更精彩哦

请关注sina微博:http://weibo.com/baiyang26

把酒泯恩仇官方博客:http://www.ibaiyang.org 【推荐用google reader订阅】

把酒泯恩仇官方豆瓣:http://www.douban.com/people/baiyang26/

如果您想转载本博客,请注明出处

如果您对本文有意见或者建议,欢迎留言
发表评论
用户名: 匿名