`

【C++ Primer】第十五章 友元、异常和其他 --之二--->异常

 
阅读更多

一,运行阶段错误

1)程序打开一个不可用的文件

2)请求过多的内存

3)遭遇不能容忍的值

二,调用abort() 异常终止一个进程 #include <stdlib.h>

流程: 1)向标准错误流发送消息 abnormal program termination

2)终止程序

3)返回一个随实现而异的值,告诉OS或父进程,处理失败


三,异常机制

1)例子:


说明:throw 类似于执行返回语句,它终止函数的执行。但throw不是将控制权返回给调用程序,而是导致程序沿函数调用序列后退。直到找到try块的函数。

2)exception类

捕获所有异常:catch(...){ }

异常的注意事项:1>使用异常会增加程序代码

2>降低程序的运行速度

3>异常规范不适用于模板,模板引发的异常随特定具体化而异

三,RTTI (runtime type identification) 运行阶段类型识别

1)含义:程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型

2)RTTI提供了以下两个非常有用的操作符:

   1)typeid操作符,返回指针和引用所指的实际类型;typeid(a).name()就能知道变量a是什么类型的
   2)dynamic_cast操作符,将基类类型的指针或引用安全地转换为派生类型的指针或引用。

3)例子:

输出:(由于采用随机数,每次运行结果不同)




分享到:
评论

相关推荐

    C++Primer(第4版)-课后习题答案.pdf

    12. 第十二章类和数据抽象:讲解面向对象编程的核心概念,如类的定义、封装、构造函数、成员函数、友元等。 13. 第十三章复制控制:探讨对象的创建、复制和销毁,包括拷贝构造函数、赋值运算符重载以及浅拷贝和深...

    C++ Primer Plus 编程练习源码工程 第15章

    《C++ Primer Plus 编程练习源码工程 第15章》是针对C++初学者的一个宝贵资源,它包含了作者LeonardoLiuwenbo在学习《C++ Primer Plus》这本经典教材时所做的编程练习。这个章节聚焦于C++语言的深入特性,旨在通过...

    C++ Primer中文版(第5版)李普曼 等著 pdf 1/3

     第15章 面向对象程序设计 525  15.1 OOP:概述 526  15.2 定义基类和派生类 527  15.2.1 定义基类 528  15.2.2 定义派生类 529  15.2.3 类型转换与继承 534  15.3 虚函数 536  15.4 抽象基类 540  15.5 ...

    c++primerplus最全课后习题答案

    ### 第15章:异常处理 #### PE15-1至PE15-4 本章习题介绍了异常处理机制,这是处理程序运行时错误的重要手段。读者可以学习到如何捕获和抛出异常,以及如何编写健壮的、能够处理意外情况的代码。 ### 第16章:命名...

    C++ Primer Plus(第六版) 7-18章 习题答案

    这一章扩展了第十五章的内容,深入探讨了如何使用文件流读写文件,包括文本文件和二进制文件的处理,以及文件的打开模式。 第十七章:回顾与展望 这一章是对前面章节的复习,总结了C++的主要特性,并为更深入的学习...

    C++Primer视频(高级)下载地址

    25.15章 定义基类和派生类 26.15章 动态绑定 27.15章 三种继承 28.15章 派生类的构造函数和析构函数 29.15章 转换与继承 30.15章 友元与继承 31.15章 静态成员与继承 32.15章 纯虚函数与抽象类 33....

    C++Primer课后习题解答(第1~18章完整答案)完整版

    **第十五章 静态成员和友元** 静态成员和友元是C++类设计中的两个重要概念。习题涉及静态成员的使用、友元函数和友元类的实现。 **第十六章 异常处理** 异常处理是保证程序健壮性的重要手段。习题涵盖try-catch语句...

    C++Primer习题答案

    第十二章 类和数据抽象:深入讲解了面向对象编程的基本概念,如类的定义、封装、继承和多态,以及构造函数、析构函数和友元。 第十三章 复制控制:讨论了拷贝构造函数、赋值运算符和移动语义,以及深拷贝和浅拷贝的...

    C++Primer第五版 第7章 类(练习解答)

    C++Primer第五版是学习C++的权威指南,其中第七章详细讲解了类的相关概念和应用。这个压缩包包含了该章节的学习总结文档以及相关的源代码示例,有助于深入理解和实践类的使用。 一、类的定义与作用 类是C++中的一个...

    c++primer第五版第10章课后习题答案(下)

    C++ Primer第五版是C++编程领域的一本权威教材,其第10章主要涵盖了类模板、模板特化以及泛型编程等核心概念。在这个章节的课后习题中,作者设计了一系列练习来帮助读者深入理解和掌握这些知识。以下是部分习题答案...

    C++Primer(第5版 )中文版(美)李普曼等著.part2.rar

     第15章 面向对象程序设计 525  15.1 OOP:概述 526  15.2 定义基类和派生类 527  15.2.1 定义基类 528  15.2.2 定义派生类 529  15.2.3 类型转换与继承 534  15.3 虚函数 536  15.4 抽象基类 540  15.5 ...

    C++primer 习题解答(非扫描完整版)

    12. **第十二章 类和数据抽象**:讨论面向对象编程的基础,类的定义、对象的创建,封装和数据抽象的概念,以及构造函数、析构函数和友元。 13. **第十三章 复制控制**:讲解了拷贝构造函数、赋值运算符重载,深拷贝...

    C++ primer plus第六版 勘误表

    C++ primer plus第六版中文版的勘误表为学习者提供了书中一些错误的修正,从而有助于读者准确理解并掌握C++编程语言的精髓。下面是对勘误表中知识点的详细解读: 1. 关于指针和内存分配,存在一条错误信息,提到...

    《C++ Primer Plus第6版中文版》学习笔记(第十一章)

    在C++ Primer Plus第六版中文版的第十一章中,主要探讨了运算符重载这一主题。运算符重载是C++中一种强大的特性,它允许程序员为自定义类型重定义内置运算符的行为。通过这种方式,我们可以使用类似于内置类型的语法...

    C++面向对象程序设计清考试卷A.doc

    - 使用 `.` 运算符调用对象成员函数,使用 `-&gt;` 运算符通过指针调用成员函数。 **10. 访问控制** - **私有** (`private`) 成员只能被类的成员函数或友元函数访问。 **11. 连接器输出** - 连接器输出文件的扩展名...

Global site tag (gtag.js) - Google Analytics