首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
在析构专题
条款09:绝不在析构和构造中调用virtual函数
1.为什么 #include<iostream>using namespace std;class Transaction//交易信息类{Transaction();virtual void logTransaction()const = 0;//交易日志};Transaction::Transaction(){logTransaction();}class BuyTransactio
阅读更多...
不能在析构函数里面抛出异常
从语法上面讲,析构函数抛出异常是可以的,C++并没有禁止析构函数引发异常,但是C++不推荐这一做法,从析构函数中抛出异常是及其危险的。 析构函数可能在对象正常结束生命周期时调用,也可能在有异常发生时从函数堆栈清理时调用。前一种情况抛出异常不会有无法预料的结果,可以正常捕获;但后一种情况下,因为函数发生了异常而导致函数的局部变量的析构函数被调用,析构函数又抛出异常,本来局部对象抛出的异常应该是
阅读更多...