C++类型转换详解
来源:互联网 发布:一个程序员的职业规划 编辑:程序博客网 时间:2024/06/02 03:49
类型转换的使用
隐式类型转换: 小 => 大 char => int
显式类型转换(强制类型转换): 大 => 小 int => char
如:
char c;
int i = c; //隐式类型转换
c = (char)i; // C风格的强制类型转换
c = char(i); // C++风格的强制类型转换
1.静态类型转换
目标类型 变量名 = static_cast<目标类型>源类型变量名
功能:
当目标类型和源类型之间只要有一个方向可以发生隐式类型转换,则在两个方向上都可以进行静态类型转换。否则不能进行类型转换
2.常量类型转换
目标类型 变量名 = const_cast<目标类型>源类型变量名
功能:
主要用于去除指针/引用上面的常属性 ;
3.重解释类型转换
volatile告诉编译器,该值是易变的,编译器不会单纯的到寄存器中取那些原本在寄存器中的数据,而是到内存空间中取数据。
目标类型 变量名 = reinterpret_cast<目标类型>(源类型变量名)
功能:
主要用于任意两个指针类型/指针和整型之间的转换;
4 动态类型转换
目标类型 变量名=dynamic_cast<目标类型>(源类型变量名)
功能:
主要用于具有多态特性的父子类之间的转换;
用于在多态继承结构中做向下造型,检查目标类型和实际对象类型是否一致,如果一致则进行转换,否则失败。如果所转换的是指针,则通过返回空指针
(必须在多态继承中进行检测,继承多态的虚表完成)
class A { virtual void foo (void) {} };
class B : public A {};
class C : public B {};
class D {};
int main (void) {
B b;
A* pa = &b; // 向上造型
cout << “pa = ” << pa << endl;
B* pb = dynamic_cast
- C语言类型转换详解
- 详解C语言的类型转换
- 详解C语言的类型转换
- 详解C语言的类型转换
- 详解C语言的类型转换
- <C/C++> 类型转换
- C/C++:类型转换
- 利用指针进行类型强制转换(c指针详解)
- C++ 类型转换详解
- Struts2类型转换详解
- Struts2类型转换详解
- c++类型转换 详解
- Struts2:类型转换详解
- C++类型转换详解
- 详解强制类型转换
- c++类型转换详解
- C类型转换
- C#.NET 类型转换
- 你知道怎么样学习java吗?
- 互联网协议
- Smarty中的变量
- 用74LS194设计一个8个灯的流水灯电路
- Smarty变量调节器的使用
- C++类型转换详解
- c#CheckedListBox单选多选个数限制问题
- 安卓WIFI一直掉线重连源因
- MySQL必知必会笔记(六)存储过程 游标 触发器
- Android遍历本地视频文件加过滤
- R语言并行化基础与提高
- Smarty中的内建函数(一)config_load、foreach
- 如何使用野狗搭建视频聊天室-WebRTC的技术实践
- HDU5697 2016百度之星初赛Astar Round2B 刷题计划