C++基础:类型转换与异常处理详解.pdfVIP

  • 0
  • 0
  • 约5.59千字
  • 约 6页
  • 2026-01-29 发布于北京
  • 举报

__

1类型转换1.1静态转换staticcast1.2使用方式staticcast目标类型(原始数据)

1.3可以进行基本数据类型转换1.4父与子类型转换1.5没有父子关系的自定义类型不可

_

转换1.6动态转换dynamiccast1.7不可转换基本数据类型1.8父子之间可以转换

_

1.8.1父转子不可以1.8.2子转父可以1.8.3发生多态都可以1.9常量转换constcast

_

1.10不能对非指针或非进行转换1.11重新解释转换reinterpretcast1.11.1最不安

全,最鸡肋不推荐2异常2.1try尝试执行try{}中的内容2.2在可能出现异常的地方抛

出异常throw2.3try下面catch捕获异常2.4catch(捕获类型)...代表所有其他类型

2.5如果不想处理异常,继续向上抛出throw2.6如果没有任何处理异常的地方,那么

成员调用terminate函数,中断程序2.7自定义异常类,可以抛出自定义的对象,捕

获自定义的异常3栈解旋3.1从try开始到throw抛出异常之前所有栈上的对象都会

被释放这个过程称为栈解旋3.2栈上对象构造顺序与析构顺序相反

4异常的接口4.1如果想抛出特定的类型异常,可以利用异

常的接口4.2voidfunc()throw(int)只能抛出int类型4.3

throw()不抛出任何类型异常

5异常变量生命周期5.1如果MyExceptione,会多开销一份数据,调用拷贝构造

5.2如果MyException*e,不new提前释放对象,new自己管理delete5.3推

荐MyExceptione,容易些而且就一份数据6异常的多态使用6.1利用多态来实

现printError,同一个接口调用6.2抛出不同的错误对象,提示不同错误7使用

__

系统异常7.1#includestdexcept7.2throwoutofrange(“aaa”)。。。

__

7.3catch(outofrangee)coute.what();8编写自己的异常类

1类型转换

1.1静态转换static_cast

1.2使用方式static_cast目标类型(原始数据)

1.3可以进行基础数据类型转换

1.4父与子类型转换

1.5没有父子关系的自定义类型不可以转换

1.6动态转换dynamic_cast

1.7不可以转换基础数据类型

1.8父子之间可以转换

1.8.1父转子不可以

1.8.2子转父可以

1.8.3发生多态都可以

1.9常量转换const_cast

1.10不能对非指针或者非进行转换

1.11重新解释转换reinterpret_cast

1.11.1最不安全,最鸡肋不推荐

2异常

2.1try试图执行try{}中的内容

2.2在可能出现异常的地方抛出异常throw

2.3try下面catch捕获异常

2.4catch(捕获类型)…代表所有其他类型

2.5如果不想处理异常,继续向上抛出throw

2.6如果没有任何处理异常的地方,那么成员调用terminate函数,中断程序

2.7自定义异常类,可以抛出自定义的对象,捕获自定义的异常

3栈解旋

3.1从try开始到throw抛出异常之前所有栈上的对象都会被释放这个过程称

为栈解旋

3.2栈上对象构造顺序与析构顺序相反

4异

文档评论(0)

1亿VIP精品文档

相关文档