C++基础 (10) 第十天 C++中类型转换 异常 栈解旋 io操作
1之前内容的回顾
C语言中的类型转换(int)a 强转可读性太差了
C++把()拆分成了四种转换方式
- 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 异常变量的生命周期
结论:
- 捕获异常类对象时 使用引用比较合适
- 指针可以和引用/元素写在一块 但是引用/元素不能写在一块
8 异常的层级结构
9 标准的异常
10 常用的标准输入流方法
11 常用的标准输出
#include <iomanip>
cout.put 输出一个char字符
cout.width 指定域宽度
cout.setfill 设置填充字符
13 文件的IO
大图: