* C++提供了四种新的类型强制: static_cast
const_cast
reinterpret_cast
dynamic_cast 1)staic_cast静态强制; 不能在无关的指针之间进行static类型强制
class CAnimal
{
//...
public:
CAnimal(){}
}; class CGiraffe:public CAnimal
{
//...
public:
CGiraffe(){}
}; int main(void)
{
CAnimal an;
CGiraffe jean; an = static_cast<CAnimal>(jean);//将对象jean强制成CAnimal类型
return 0;
} 2、const_cast类型强制 const_cast类型强制将一个const变量变成一个非const的等价形式
int main()
{
const int j = 99;
int * k; k = const_cast<int *>(&j);//解除const
return 0;
} 3、reinterpret_cast运算符 reinterpret_cast运算符用来将一个类型指针转变为另一种类型的指针,也用在将整开型量转为指针,或将指针转为整型量上;
int main()
{
int j = 10;
int * ptr = &j;
char * cptr; cptr = reinterpret_cast<char *>(ptr);//将int指针类型转变为char的指针类型 return 0;
} 4、dynamic_cast运算符 dynamic_cast的主要目的是: 1)它返回派生类对象的地址;
2)它测试基类指针是否指向下一尖括号<>中所指定类型的对象 dynamic_cast是一个运行时类型信息,dynamic_cast运算符将指向派生对象的基类部分的基类指针转变为指向派生对象的派生类指针,dynamic_cast必须严格地指定与派生对象相同的类,或者它返回NULL指针;
class CAnimal
{
//...
};
class CGiraffe:public CAnimal
{
//...
};
class CGoat:public CAnimal
{
//...
}; int main()
{
CGiraffe gene;
CAnimal * aptr = &gene;
CGiraffe * ptr1,* ptr2; ptr1 = dynamic_cast<CGiraffe *>(aptr);
ptr2 = dynamic_cast<CGoat *>(aptr); //return NULL return 0;
}

C++类型转换: static_cast const_cast reinterpret_cast dynamic_cast相关推荐

  1. 【C++】类型转换(const_cast、dynamic_cast、static_cast、reinterpret_cast)

    C++类型转换 C语言风格的类型转换符 const_cast dynamic_cast static_cast reinterpret_cast 总结 C语言风格的类型转换符 C 语言风格的类型转换符 ...

  2. C++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast

    static_cast(可能不安全):一般.对象指(引)上行/下行转换 dynamic_cast(运行时的安全检查--抛出异常/NULL):对象指(引)上行/下行转换 const_cast:   主要 ...

  3. 显式强制类型转换static_cast, dynamic_cast, const_cast, reinterpret_cast

    显式强制类型转换(cast)包括以下操作符: static_cast,  dynamic_cast, const_cast, reinterpret_cast,对各种显式类型转换解释: static_ ...

  4. 类型转换static_cast,dynamic_cast,const_cast,reinterpret_cast等

    一.隐式类型转换 系统自动进行,不需要程序开发人员介入. int m = 3 +45.6; //把小数部分截掉,也属于隐式类型转换的一种行为. doublen = 3 +45.6; 二.显示类型转换( ...

  5. C++基础——C++风格的类型转换(static_cast、const_cast、dynamic_cast、reinterpret_cast)

    static_cast const_cast dynamic_cast reinterpret_cast References 类型转换是一个笼统.模糊的词,对应着C语言类型转换的粗粒度特性. C++ ...

  6. C/C++中的数据类型转换()/static_cast/dynamic_cast/const_cast/reinterpret_cast

    文章目录 前言 数据类型自动转换 C语言中的强制类型转换 C++中的强制类型转换 static_cast dynamic_cast const_cast reinterpret_cast 强转关键字的 ...

  7. c++类型转换 const_cast、dynamic_cast、reinterpret_cast、static_cast

    const_cast(针对const存在的) c++类型转换,专人做专事,更安全,所有的类型转换语法都相同 const_cast<要转换的类型>(要转换的目标) 去掉const属性(提供一 ...

  8. C++中static_cast/const_cast/dynamic_cast/reinterpret_cast的区别和使用

    C风格的强制转换较简单,如将float a转换为int b,则可以这样:b = (int)a,或者b=int(a). C++类型转换分为隐式类型转换和显示类型转换. 隐式类型转换又称为标准转换,包括以 ...

  9. C++中四种类型转换方式(ynamic_cast,const_cast,static_cast,reinterpret_cast)

    Q:什么是C风格转换?什么是static_cast, dynamic_cast 以及 reinterpret_cast?区别是什么?为什么要注意? A:转换的含义是通过改变一个变量的类型为别的类型从而 ...

最新文章

  1. 程序员眼中的UML(2)--克服用例图的恐惧
  2. RabbitMQ消息应答------ack机制
  3. mysql 更改 uf_SQL经典实例(四)插入、更新和删除
  4. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)
  5. ERROR: org.apache.hadoop.hbase.PleaseHoldException:Master is initializing
  6. 第1次作业:这是我的一个响亮的标题X!
  7. 矢量算法java,矢量线的一种栅格化算法
  8. jenkins手把手教你从入门到放弃02-jenkins在Windows系统安装与配置
  9. Springboot入门到精通(超详细文档)
  10. Ureport2的表格更改小技巧
  11. fastq转化成fasta格式
  12. 浪潮财务软件 系统表预检查: 对象 ID X。无法使用闩锁类型 SH 读取并闩锁页 。由于不可修复的错误,CHECK 语句已终止。
  13. uml图六种箭头的含义
  14. 老调重弹:JDBC系列之驱动加载原理全面解析)
  15. Day21 jQuery 基础二
  16. DataFrame的apply应用
  17. 什么是质量?你真的了解吗?
  18. 2019Google I/O开发者大会:Pixel 3a、Nest Hub Max,以及 AI 让生活更美好!
  19. GeoTools,JTS和GeoAPI -- (学习GIS【3】)
  20. 公式计算-C语言实现

热门文章

  1. 【数学与算法】步长一维搜索、梯度下降法、最速下降法、牛顿法
  2. Caffe的Solver参数设置
  3. 微博收藏(机器学习代码与工具)(一)
  4. Java 面试知识点解析(七)——Web篇
  5. Java虚拟机详解03----常用JVM配置参数
  6. mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
  7. pinpoint 安装部署
  8. Java 8新特性终极指南
  9. 数据库事务的隔离级别
  10. java提高篇(八)----详解内部类