第十八章 用于大型程序的工具
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十八章 用于大型程序的工具相关的知识,希望对你有一定的参考价值。
18.1
异常对象的类型:
(a):range_error
(b):range_error
throw p将抛出一个exception类型的异常
18.2
分配的动态内存将无法释放
答案:发生异常,所在块之前的临时变量皆会被销毁,V会调用vector类的析构函数进行销毁,并释放相关内存,P指针会被销毁,但是P指针指向的内存由于是动态分配的,所以该内存不会被释放,造成内存泄漏。输入流对象会调用ifstream类的析构函数销毁,最后程序被终止。
18.3
方一:使用智能指针,并传入删除的lambda表达式
shared_ptr<int> p(new int[v.size()], [](int *p) { delete[] p; });//lambda表达式相当于一个删除器
方二:使用类:创建一个包含一个int*的类,在析构函数进行delete文件指针
class intAr { int *p=nullptr; public: intAr(size_t n): p(new int[n]){} ~intAr() { delete []p; } }
以上是关于第十八章 用于大型程序的工具的主要内容,如果未能解决你的问题,请参考以下文章