`
把酒泯恩仇
  • 浏览: 26437 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

C++四种新式转换

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转型操作符。其意思是将一个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/

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

如果您对本文有意见或者建议,欢迎留言
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics