static_cast 用于内置的数据类型
还有具有继承关系的指针或者引用

代码如下:

#include <iostream>
using namespace std;class Building {};
class Animal{};
class Cat:public Animal{};int main()
{int a = 97;char c = static_cast<char>(a);cout << c << endl;int *p = nullptr;//char *sp = static_cast<char*>(p); 转不了Building *building = nullptr;//Animal *ani = static_cast<Animal *>(building); 转不了//父类指针转成子类指针Animal *ani = nullptr;Cat *cat = static_cast<Cat*> (ani);//子类指针转成父类指针Cat *soncat = nullptr;Animal *anifather = static_cast<Animal *> (soncat);Animal aniobj;Animal &aniref = aniobj;Cat&cat = static_cast<Cat &>(aniref);Cat catobj;Cat & catref = catobj;Animal & anifather2 = static_cast<Animal &> (catref);return 0;
}

dynamic_cast 转换具有继承关系的指针或者引用,在转换前会进行对象类型检查,只能由子类型转换为基类型。

子类指针可以转换为父类指针(从大到小),类型安全。

父类指针转成子类指针(从小到大),不安全。

代码如下:

#include <iostream>
using namespace std;class Building {};
class Animal{};
class Cat:public Animal{};int main()
{int a = 10;//char c = dynamic_cast<char>(a);  转换不了Animal *ani = nullptr;//Building *building = dynamic_cast<Building *>(ani);  转换不了Animal * ani = nullptr;//Cat * cat = dynamic_cast<Cat *>(ani);  转换不了Cat * cat = nullptr;Animal *ani = dynamic_cast<Animal*>(cat);return 0;
}

const_cast增加或者去除变量的const性。

代码如下:

#include <iostream>
using namespace std;class Building {};
class Animal{};
class Cat:public Animal{};int main()
{int a = 10;const int &b = a;int &c = const_cast<int &>(b);c = 20;cout << a << endl;cout << b << endl;cout << c << endl;const int *p = nullptr;int *q = const_cast<int*>(p);int *p3 = nullptr;const int *p4 = const_cast<const int *>(p3);return 0;
}

reinterpret_cast 强制类型转换

代码如下:

#include <iostream>
using namespace std;class Building {};
class Animal{};
class Cat:public Animal{};int main()
{Building *building = nullptr;Animal *ani = reinterpret_cast<Animal *> (building);typedef void(*FUNC1)(int, int);typedef int(*FUNC2)(int, char*);FUNC1 func1;FUNC2 func2 = reinterpret_cast<FUNC2>(func1);return 0;
}

C++类型转换基本语法相关推荐

  1. SQL Server Cast、Convert数据类型转换

    一.概述 本篇文章转载来着官网在线文档,文章主要介绍SQL Server数据类型转换相关语法.隐式转换.Date样式等. 语法 Syntax for CAST: CAST ( expression A ...

  2. C/C++中的数据类型转换

    文章目录 1 隐式类型转换 1.1 隐式类型转换的基本概念 1.2 隐式类型转换的发生点 1.3 浮点数赋值给整形数分析 2 C语言中的强制类型转换 3 C++中的强制类型转换 3.1 static_ ...

  3. java中的类型转换

    今天复习了一下java的基础,重新回顾一下java中的类型转换. 一.自动类型转换 java中的数值类型都能进行自动类型的转换,表示范围小的能自动转化为表示范围大的. 总的来说如下图: 还有一种自动转 ...

  4. char强制类型转换为int_C语言学习第5篇---类型转换概念理解

    类型之间的转换 1.C语言中的数据可以进行转换 ---强制类型转换 ---隐式类型转换 强制类型转换 1.强制类型转换的语法 ---(Type)var_name; ---(Type)value; 2. ...

  5. 在五分钟内学习使用Python进行类型转换

    by PALAKOLLU SRI MANIKANTA 通过PALAKOLLU SRI MANIKANTA 在五分钟内学习使用Python进行类型转换 (Learn typecasting in Pyt ...

  6. 【C语言进阶深度学习记录】四 C语言中的类型转换

    今天学习C语言中的类型转换,包括隐式类型转换和显示类型转换 文章目录 1 C语言中的数据类型转换 1.1 强制类型转换 1.11 强制类型转换代码分析 1.2 隐式类型转换 1.21 隐式类型转换代码 ...

  7. java的自动类型转换和强制类型转换

    在程序运行时,经常需要将一种数值类型进行转换成另一种类型.下面给出了一个合法的转换. 数值之间的合法转换 上图中有6个实心箭头,表示无信息丢失的转换,有三个虚箭头,表示可能有精度丢失的转换.例如123 ...

  8. java 语法_Java基础语法

    标识符 定义 给包,类,方法,变量起名字的符号. 组成规则 标识符由字母.数字.下划线.美元符号组成. 命名原则:见名知意 包名:全部小写,多级包用.隔开. 举例:com.jourwon 类.接口:一 ...

  9. C++ 四种类型转换运算符

    隐式类型转换是安全的,显式类型转换是有风险的,C语言之所以增加强制类型转换的语法,就是为了强调风险,让程序员意识到自己在做什么. 但是,这种强调风险的方式还是比较粗放,粒度比较大,它并没有表明存在什么 ...

最新文章

  1. java与工业相机,OpenCV软件与工业相机的组合在机器视觉中的应用
  2. java字符编码问题_java 字符编码问题
  3. 【转载】用 Pyinstaller 来打包 + 解决打包结果过大问题
  4. android列表【android开发记录片】android下实现圆角列表布局控件
  5. 浅谈Normalize.css
  6. ubuntu12.04 qtcreate支持中文输入
  7. 如何下载电驴网站Verycd上的资源
  8. 数据分析项目实战项目四:亚马逊Kindle书籍多渠道商业分析项目
  9. 让Ubuntu 10.04完美支持Thinkpad小红点Trackpoint
  10. NPDP知识推送-第三章新产品开发流程管理(1)
  11. 英文版-Plan9汇编器-A Manual for the Plan 9 assembler
  12. Vue中配置代理服务器
  13. 【渝粤教育】国家开放大学2018年秋季 8180-22T (1)畜禽生产概论 参考试题
  14. 关于FlashDB的应用-GD32F450上
  15. 区块链热点!STO被政府严令禁止
  16. python按某列拆分excel表格_Python对Excel按列值筛选并拆分表格到多个文件的代码...
  17. JProfiler让人痛彻心扉的安装与部署
  18. 关于遥感影像、DEM、边界矢量数据下载的相关方法
  19. MOS管选型注重的参数及使用注意事项-KIA MOS管
  20. C++软件工程师面试题汇总

热门文章

  1. 【ArcGIS微课1000例】0007:基于数字高程模型DEM生成剖面线、剖面图
  2. CityEngine 2012与ArcGIS 10.2破解心得
  3. mysql 一对多 关联一条最新的数据_不得不会的mysql锁
  4. if函数python_pythonif函数
  5. 日本的电视节目到底能有多特别?
  6. 了解IT行业前沿应用,关注数据与算法之美
  7. 数据挖掘在呼叫中心的六大应用点
  8. 浅谈协同过滤推荐算法
  9. oracle 加密怎么解密,oracle加密encrypt,解密decrypt,
  10. 2014全国计算机二级ms office,2014计算机二级MS Office真题及答案