![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2018.12.1
欧梅尼亚
这个作者很懒,什么都没留下…
展开
-
C++基础教程面向对象(学习笔记(77))
异常,类和继承例外和成员函数到目前为止,在本教程中,您只看到了非成员函数中使用的异常。但是,异常在成员函数中同样有用,甚至在重载运算符中也是如此。将以下重载的[]运算符视为简单整数数组类的一部分:int& IntArray::operator[](const int index){ return m_data[index];}虽然只要index是一个有效的数组索引,这...翻译 2018-12-01 09:33:28 · 254 阅读 · 0 评论 -
C++基础教程面向对象(学习笔记(78))
重新抛出异常有时候,您可能会遇到想要捕获异常的情况,但不希望(或有能力)在捕获它时完全处理它。这在您想要记录错误,这很很常见,但会将问题传递给调用者以实际处理。当函数可以使用返回代码时,这很简单。请考虑以下示例:Database* createDatabase(std::string filename){ try { Database *d = new Da...翻译 2018-12-01 09:58:00 · 68 阅读 · 0 评论 -
C++基础教程面向对象(学习笔记(79))
函数try块在大多数情况下,try和catch块工作得很好,但有一个特殊情况,它们是不够的。请考虑以下示例:class A{private: int m_x;public: A(int x) : m_x(x) { if (x <= 0) throw 1; }}; class B : public A{public: B(int x) : A(x) {...翻译 2018-12-01 10:23:30 · 105 阅读 · 0 评论 -
C++基础教程面向对象(学习笔记(80))
异常危险和缺点与几乎所有有益的东西一样,异常也存在一些潜在的缺点。本文并不是全面的,只是指出在使用异常(或决定是否使用它们)时应该考虑的一些主要问题。清理资源使用异常时新程序员遇到的最大问题之一是在发生异常时清理资源的问题。请考虑以下示例:try{ openFile(filename); writeFile(filename, data); closeFile(f...翻译 2018-12-01 10:36:08 · 129 阅读 · 0 评论 -
C++基础教程面向对象(学习笔记(81))
综合测验章节回顾异常处理提供了一种机制,可以将错误或其他异常情况的处理与代码的典型控制流分离。这允许更自由地处理在给定情况下何时以及如何处理最有用的错误,从而减轻返回代码引起的许多(如果不是全部)混乱。一个throw句用来引发异常。 try块查找在其中编写或调用的代码抛出的异常。这些异常被路由到catch块,这些块捕获特定类型的异常(如果它们匹配)并处理它们。默认情况下,捕获的异常被视为已处...翻译 2018-12-01 10:43:07 · 87 阅读 · 0 评论