C++基础 (10) 第十天 C++中类型转换 异常 栈解旋 io操作

1之前内容的回顾

C语言中的类型转换(int)a  强转可读性太差了

C++把()拆分成了四种转换方式

  1. static_cast

static_cast在编译器编译阶段就进行转换了

2.dynamic_cast

dynamic_cast操作符会在运行期对可疑的转型操作进行安全检查,而static_cast操作符不会进行安全检查

先讲一个小知识点::

子类指针转换为父类是完全安全的(只需要截断),
而父类指针强制转换为有时子类会出问题的

所以用dynamic_cast 进行转换会有返回值,如果转换成功就返回 如果转换不成功就返回NULL(0)

一般有父子之间关系的用dynamic_cast

同时转换要进行判断如果是空就没转换成功

3. const_cast

知识点:

关于C++常量的知识点:

4.reinterpret_cast 重新解释类型转换

 

https://jingyan.baidu.com/article/1e5468f9bd50b3484961b721.html

5 异常的基本语法

就是 try catch

前面的都执行完了,如果还没有捕获到

catch(…) 是捕获所有异常

 

6 栈解旋

 

栈解旋就是 异常抛出完之后,所有在栈上开辟的空间都会被释放掉。

7 异常变量的生命周期

结论:

  1. 捕获异常类对象时 使用引用比较合适
  2. 指针可以和引用/元素写在一块 但是引用/元素不能写在一块

8 异常的层级结构

9 标准的异常

10 常用的标准输入流方法

 

 

11 常用的标准输出

#include <iomanip>

cout.put 输出一个char字符

cout.width 指定域宽度

cout.setfill 设置填充字符

13 文件的IO

 

大图:

原文地址:https://www.cnblogs.com/eret9616/p/10514089.html