您的位置:首页 > 编程语言 > C语言/C++

C++ 类型转换

2016-04-29 16:43 232 查看
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)有完全相同的比特位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: