

【读书笔记】《C++ Software Design》第二章:The Art of Building Abstractions
示例场景:实现一个Stack<T>类时,提供pop()方法返回T&,但在空栈调用时未抛出异常,而是返回未定义引用。问题:客户端无法预期pop()行为,违反直觉。解决方案改用返回值,或抛出明确异常。添加文档注释,明确表明函数的异常保证级别(noexcept 语义)。要点:抽象应贴合领域概念,避免陷入技术细节。示例:定义Moneylong cents;public:好处:减少单元转换错误,增强类型安全性与可读性。优势:支持对第三方类型扩展接口,无需修改原始类。示例实践示例} };
