c++学习之类型转换
来源:互联网 发布:ios多线程编程运用 编辑:程序博客网 时间:2024/06/11 18:34
c++的高级类型转换分为4类。分为来看;
1 reinterpret_cast
该转换用在指针到指针间,指针到整型,整型到指针间的转换,并且不做检查。
#include <iostream>using namespace std;int main(){int a = 1;int *b = &a;cout << b << endl;int c = reinterpret_cast<int>(b);cout << c << endl;return 0;}
执行结果如下:
这里的1245052就是0012FF7C的10进制表示,将一个地址转换成了整型。
2 static_cast
可以执行所有的隐式转换,以及不允许隐式转换的操作。在转换过程中,并不会进行类型匹配的检查。
#include <iostream>using namespace std;int main(){int a = 1;double b = 2.2;a = static_cast<int>(b);cout << a << endl;return 0;}
执行的结果如下:
3 dynamic_cast
这个转换和static_cast转换差不多,只是static_cast不做检查,dynamic_cast会做安全检查。另外,static_cast可以用作基本类型的转换。
4 const_cast
目前这种转换没用过,不是很清晰。后续会补上。
另外:typeid
typeid函数返回一个变量的类型,通常用该函数返回的类型调用name函数,来取得字符串形式。另外,typeid返回的值可以用作==或!=比较。
#include <iostream>#include <typeinfo>using namespace std;int main(){string c = "hello";cout << typeid(c).name() << endl;int a = 1;cout << typeid(a).name() << endl;cout << (typeid(c) != typeid(a)) << endl;return 0;}还是看一下结果吧。
熟悉java开发的童鞋看到这里是不是觉得typeid().name()返回的值和java里面的class.getClass()很像呀。。。哈哈。。。
- C语言学习之类型转换第一讲
- C语言之类型转换
- C语言之类型转换
- C语言之类型转换
- C语言之类型转换
- Struts2学习之类型转换
- c++学习之类型转换
- struts2学习之---类型转换
- C++学习之路C++Primer学习笔记(三)_类型转换
- C/C++学习笔记28:类型转换
- C++primer学习笔记-----4.11类型转换
- C常见问题之自动类型转换
- 笔试常见之C类型转换
- IOS之 OC 和 C类型转换
- C语言进阶之类型转换
- c语言之强制类型转换
- 《C++primer(第五版)》学习之路-第十四章:重载运算与类型转换
- Struts2学习笔记之类型转换。
- File transfer over sound card
- 整数划分
- hibernate的Criteria Query(转)
- 【Cocos2d-X开发学习笔记】第01期:PC开发环境的详细搭建
- C语言一个双向链表的实现
- c++学习之类型转换
- 状态压缩动态规划
- POJ2773-Happy 2006
- 【Android LibGDX游戏引擎开发教程】第01期:LibGDX的详细介绍
- ASP.NET MVC4自定义分页
- Exchange 2007 中的电子邮件地址策略和接受域
- [HDU 4252] A Famous City[单调队列]
- 2013 - ECJTU 暑期训练赛第七场-problem-G
- 在for循环中使用数组