C++四种类型转换
来源:互联网 发布:吉诺比利巅峰数据 编辑:程序博客网 时间:2024/06/04 00:24
1、static_cast
1.上行转换,把派生类的指针或引用转换成基类,此时是安全的
2.下行转换,把基类的指针或者引用转换成派生类,因为没有动态监测,所以是不安全的
3.显示类型转换,如Int转float等
4.任意类型空指针转任意类型空指针
5.任意类型表达式转为void类型
代码如下:
int a = 4;float f = static_cast <float>(a);void *pa = &a;int *pb = static_cast <int*>(pa);
class Base{virtual void A(){cout << "a" << endl;}};class B :public Base{void A(){cout << "b" << endl;}};Base *base = new Base;B *b = static_cast<B*>(base);
2、const_cast
1.常量指针被转成非常量指针并指向原对象。
2.常量引用被转成非常量引用并指向原对象。
const B *b1;B* b2 = const_cast<B*>(b1);
3、dynamic_cast
下行转下行的时候会检测,比static_cast安全。不成功返回NULL。
4、reinterpret_cast
它可以把一个指针转换成一个整数,也可以把一个整数转换成一个指针(先把一个指针转换成一个整数,
在把该整数转换成原类型的指针,还可以得到原先的指针值)。
该运算符的用法比较多。
0 0
- 四种类型转换
- 四种类型转换
- 四种类型转换
- 四种类型转换
- C++四种类型转换
- 四种类型转换 cast
- C++四种类型转换
- c++四种类型转换
- C++四种类型转换
- cpp四种类型转换
- C++四种类型转换
- C++四种类型转换
- c++四种类型转换
- c++四种类型转换
- C++ 四种类型转换
- C++四种类型转换
- c++四种类型转换
- C++四种类型转换
- Java动态代理实现
- 【Rsync项目实战】备份全网服务器数据
- Appium for Win7 环境搭建
- Hibernate 添加数据 二 (多对多)
- 最小生成树模版题
- C++四种类型转换
- C++多态之动态绑定
- 构建高并发高可用的电商平台架构实践3
- 各类排序算法复杂度、稳定性比较
- Hibernate 查询数据
- Android 测试环境搭建(Win7)
- scala(一)/Haskel(一)
- 整理一下算法和数据结构
- 《ACM程序设计》书中题目 N