C++中四种显示类型转换总结
2012-03-05 20:21
447 查看
#include <iostream> using namespace std; /* *四种显示类型转换 **/ int main(){ /* static_case 类型转换*/ double a=1.1213; int b=static_cast<int>(a); class base{}; class father:public base{}; father f; base ba=static_cast<base>(f); /*reinterpret_cast类型转换*/ //基本类型的指针类型转换 double c=12.123; double* pc=&c; int* pi=reinterpret_cast<int*>(pc); //不相关的类的指针的类型转换 class A{}; class B{}; A* pa=new A; B* pb=reinterpret_cast<B*>(pa); delete pa; //指针转换为整数 int num=reinterpret_cast<int>(pc); //企图转换非指针类型的 //b=reinterpret_cast<int>(a); 这条语句是错误的 //企图将const指针转换为void指针 // const int * pint=0; // void* pvoid=reinterpret_cast<void *>(pint); 错误 /* const_cast 类型转换*/ const int* pint=0; int * pint1=const_cast<int *>(pint); //基于安全性的考虑,下面的转换是错误的 // const int nInt=0; // int nInt2=const_cast<int>(nInt); int* pnum=0; const int * pnum2=const_cast<const int*>(pnum); int i=0; //const int i2=const_cast<const int>(i); //不能编译通过 const int i2=(const int)i; //隐式转换可以编译通过 return 0; }
具体的总结请参考《C++ STL开发技术导引.pdf 》第1.6小节。
相关文章推荐
- C++的四种显示类型转换
- C++四种类型转换总结
- C++四种强制类型转换的总结
- C++总结之四种类型转换方式(20160806)
- C++四种类型转换总结
- 面试总结(二)转 C++的四种cast操作符的区别--类型转换
- C++的四种显示类型转换
- C++类型转换总结
- 浅谈C++中的四种类型转换
- C++中四种类型转换方式
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C++中的4种显示类型转换
- c/c++类型转换总结
- C++数据类型转换总结
- 从零开始学C++之从C到C++(二):引用、数组引用与指针引用、内联函数inline、四种类型转换运算符
- C++中的四种显式类型转换之const_cast、reinterpret
- 关于C++中类类型转换操作符总结
- C++四种类型转换
- C++类型转换总结
- C++中四种类型转换方式