Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300243
  • 博文数量: 148
  • 博客积分: 4365
  • 博客等级: 上校
  • 技术积分: 1566
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-05 21:38
文章分类
文章存档

2014年(2)

2013年(45)

2012年(18)

2011年(1)

2009年(54)

2008年(28)

我的朋友

分类: C/C++

2008-11-03 17:21:58

C语言中的类型转换不能转换变量的静态类型,如const与nonconst,基类型指针与派生类指针等,而且在源代码中很不容易被发现,有时很不方便且容易造成错误。
c++中引入了新的类型转换机制,4个转换运算符
1.static_cast
  对应C-style的类型转换 C中 (type) expression,写成 static_cast(expression)

int a=10;
static_cast<double>(a);

像C-style一样,有限制,通过static_cast不能使int或double指针指向struct,也无法与const打交道。

2.const_cast
  能够转换变量的constness或volatileness属性,通常用于指针。最常用的是切掉变量的const属性。

3.dynamic_cast
  用于转换基类与派生类的指针或引用。从基类向下进行转换,要注意指针或引用是否指向的是派生类对象。

4.reinterpret_cast
  底层指针的转换,如int*转成char*,极其不推荐使用。
阅读(705) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~