4种类型转换操作符 (static_cast const_cast dynamic_cast reinterpret_cast)
来源:互联网 发布:pymongo 读取数据 编辑:程序博客网 时间:2024/05/17 22:55
4种类型转换操作符
1.static_cast 2.const_cast 3.dynamic_cast 4.reinterpret_cast.
1.static_cast
最常用的类型转换符,在正常状况下的类型转换,如把int转换为float,如:int i;float f; f=(float)i;或者f=static_cast<float>(i);
2.const_cast
用于去除const属性,把const类型的指针变为非const类型的指针,如:const int *fun(int x,int y){} int *ptr=const_cast<int *>(fun(2.3))
3.dynamic_cast
该操作符用于运行时检查该转换是否类型安全,但只在多态类型时合法,即该类至少具有一个虚拟方法。dynamic_cast与static_cast具有相同的基本语法,dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。在类层次间进行上行转换时,dynamic_cast和static_cast的效果是一样的;在进行下行转换时,dynamic_cast具有类型检查的功能,比static_cast更安全。如:
class C
{
//…C没有虚拟函数
};
class T{
//…
}
int main()
{
dynamic_cast<T*> (new C);//错误
}
此时如改为以下则是合法的:
class C
{
public:
virtual void m() {};// C现在是 多态
}
4.reinterpret_cast
interpret是解释的意思,reinterpret即为重新解释,此标识符的意思即为数据的二进制形式重新解释,但是不改变其值。如:int i; char *ptr="hello freind!"; i=reinterpret_cast<int>(ptr);这个转换方式很少使用。
- 4种类型转换操作符 (static_cast const_cast dynamic_cast reinterpret_cast)
- C++四种类型转换操作符:const_cast,static_cast, dynamic_cast 以及 reinterpret_cast
- C++ 四种类型强制转换 static_cast、const_cast、reinterpret_cast、dynamic_cast
- C++中四种类型转换static_cast、const_cast、reinterpret_cast、dynamic_cast
- C++中四种类型转换运算符的使用方法(reinterpret_cast,const_cast,static_cast,dynamic_cast)
- C++中四种类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast要点解析
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.
- 类型转换操作符:static_cast, dynamic_cast, const_cast, reinterpret_cast.
- C++ 类型转换操作符static_cast/const_cast/dynamic_cast/reinterpret_cast 区别
- c++ 强制转换类型运算符 const_cast reinterpret_cast static_cast dynamic_cast
- 运算转换符static_cast,const_cast,reinterpret_cast,dynamic_cast之间的区别
- C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 标准C++的类型转换符(static_cast, dynamic_cast, const_cast, reinterpret_cast)
- C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast
- 谈谈C++的类型转换符 static_cast、dynamic_cast、const_cast、reinterpret_cast
- java web项目中使用log4j
- 基于矩阵实现的Connected Components算法
- error while loading shared libraries: libXX-2.0.so.5: cannot open shared object file: No such file
- CCCC-GPLT L1-037. A除以B 团体程序设计天梯赛
- hdu4294-网络流+最短路
- 4种类型转换操作符 (static_cast const_cast dynamic_cast reinterpret_cast)
- tensorflow-示例2(MNIST集合上进行分类深度卷积网DCNN)
- Leetcode题目按Tag分类
- [BZOJ3963][WF2011]MachineWorks(斜率优化dp+cdq分治)
- 记一次读书感想
- 机房重构Bug
- Java中为什么不推荐使用stop()和suspend()方法
- CPP_Basic_Summary_0.4
- 用qt5.3.2打开ros(机器人操作系統)的界面(CmakeList.txt)