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

 

大图:

 

 

posted @ 2019-03-11 23:48  hh9515  阅读(470)  评论(0编辑  收藏  举报