C++ 类型转换

C++风格类型转换(引进以下4种类型转换操作符)

1. static_cast 最常用的类型转换符。 

int i; float f;

f = static_cast<float>(i);

2. const_cast 去掉const指针的const属性

const int* data;

int* _data = const_cast<int*>(data);

3. dynamic_cast 用于运行时检查类型转换是否类型安全

1) class A{};

      class B{};

     //B没有虚拟函数,不可以转换

     int main(){ A* a = dynamic_cast<A*>(new B); }  

2) class A{}; 

      class B{//给类B增加一个虚函数

    public:

      virtual void b(){}

  }; 

     //可以转换 

       int main(){ A* a = dynamic_cast<A*>(new B); } 

4. reinterpret_cast 处理无关类型之间的转换;它会产生一个新的值,这个值会有与原始参数(expressoin)有完全相同的比特位

 

posted @ 2016-04-29 16:43  huapyuan  阅读(167)  评论(0编辑  收藏  举报