C++的一些设计问题

构造函数

缺点:
不能通过返回值报告错误,C++异常机制又不靠谱;
二级段构造可以分离内存分配和初始化,可以在栈上分配对象;

优点:
二阶段构造函数,使得对象处于未构造的不确定状态;

析构函数

缺点:
析构函数不能调用虚方法;

优点:
值语义下会自动调用析构函数;

异常机制

缺点:
中途排除的异常导致资源泄露(就是用auto_ptr的情况);
代码大小和运行效率影响;

优点:
错误不可忽略,增强健壮性;
错误逻辑和正常逻辑分离,增强可读性;
错误信息丰富;

总之是C++异常机制不好,不是异常机制本身不好。至于说异常机制容易引起奔溃的说法,是对异常的误解。

你可能感兴趣的:(C++的一些设计问题)