为什么返回一个临时对象的引用是不安全的

2021-08-25
阅读 1 分钟
1.6k
1.问题说明返回一个临时对象的引用是不安全的,因为当离开作用域,这个临时对象会马上析构,所以函数返回的总是悬挂引用(空悬引用),使用这个引用是一个未定义行为,会导致程序崩溃。2.问题分析看下面这段代码:

C++中析构函数为什么不允许抛出异常

2021-08-24
阅读 1 分钟
3.2k
1.问题本身:在语法上,C++允许在析构中抛出异常,但异常处理,本身就是为了处理构造失败的情况。当一个对象构造失败而抛出异常时,我们应当利用析构函数,清理无效对象,并回收其资源,这是使程序健壮的重要手段。2.问题分析:从1可知,构造函数显然是可以抛出异常的。进一步分析,在析构函数中抛出异常,会出现哪些情况...