最近重读了一下一些经典的 C++ 书籍,再次感觉到 C++ 的难与浩大,为了日后编程能够减少错误和提高效率,故希望把一些编程规范做一下总结及收集,同时也把一些编程的最佳实践和惯用法总结一下,方便日后开发的时候能够根据需要应用上。
这个工作说容易也容易,基本就是把这些书籍的目录罗列一下。说难也难,要做到能够指导日后的快速开发,这个确实不容易。反正尽量做吧,应该会有点用的。
首先,把我认为比较好的书以及目录罗列一下(点击链接查阅):
然后,需要做一些说明:
- 相关条款用类似“E1”等表示某条款,即对应《Effective C++》的条款1,具体可以点击链接查阅条文,再需要参考进一步的信息则要看书了。
- 相关的惯用法不单只涉及 C++ 和 STL 库,还会涉及其他一些常用的库,例如 Boost、ZLib、OpenSSL、QT 等库。
- 各个条款在不同的书里可能会存在类似的重复情况,这是正常的;也存在一些条款在不同的书里存在矛盾的地方,但是细想的话,其实是不矛盾的,因为前提条件可能是不同的,也存在例外情况。
- 文中会使用如下由强到弱的表述方式“必须”、“应该”、“建议”,“必须”是需要严格遵守的,“应该”是表示绝大多数情况适用,“建议”是表示这是一般常用的用法可以统一但并不强制。
最后,罗列一下最佳实践、惯用法和不适当的做法(点击链接查阅):
最佳实践:
值类
基类
traits类
策略类
异常类
附属类
惯用法:
RAII 惯用法
Pimpl 惯用法
erase-remove 惯用法
不适当的做法: