文末送书 ?C++之父给C++程序员的1047条建议

从1979年C++诞生的那一天起,C++之父 就一直致力于C++的标准制定、语言设计与实现、教学和研究等相关的工作,硕果累累,为C++的发展和应用做出了杰出的贡献 。
不仅仅是在C++方面取得了不菲的成就,在其他很多方面都颇有建树 。为了向致敬,我们来看看他亮眼的履历 。
图 C++之父
介绍
C++语言之父:C++的设计者和最初实现者,C++语言ISO标准的维护者 。
科学界明星人物:曾获《财富》杂志“美国12位最年轻的科学家”称号,以及BYTE杂志“近20年来计算机工业最具影响力的20人”称号 。
学术造诣极高:美国工程院院士、IEEE会士、ACM会士,曾获Sigma Xi(科学研究协会)的 奖(首位获得此奖的计算机科学家) 。
教育贡献重大:曾担任德州农工大学首席教授,为剑桥大学、哥伦比亚大学、普林斯顿大学等知名学府教育事业做出重要贡献 。
企业界担任要职:现任摩根士丹利技术与数据部门董事总经理,科技公司资深顾问 。
著作颇丰:
为了帮助程序员更好地学习和使用C++,创建了一个内容丰富的C++元宇宙《C++之父创建的C++元宇宙》 。其中,这个元宇宙中包含1047条C++编程的最佳实践,全部都是从C++语言设计者的视角和大量工程实践中总结出来的宝贵经验,可谓字字珠玑 。
这些最佳实践都悉数总结在的3部享誉全球的著作里,由于数量比较多,本文无法全部呈现,只能展示部分,想要领会语言之父思想和经验的读者,可以沿着下面的路线找到全部的1047条最佳实践 。
1.《C++程序设计语言(原书第4版)》:698条
这里随机展示10条:
建议1:请关注编程技术,而非语言特性 。
建议2:设计应该关注优雅且高效的抽象,可能的情况下以库的形式呈现 。
建议3:当接口和实现需要完全分离时,请使用抽象类作为接口 。
建议4:如果你不确定是否会越界,请记得使用带边界检查的容器 。
建议5:尽量使用普通char,而非 char或 char 。
建议6:让表示所有权的指针位于句柄类的内部 。
建议7:当不得不使用显式类型转换时,请尽量使用命名的转换 。
建议8:与函数指针相比,请优先使用函数对象(包括)和虚函数 。
建议9:仅在确实需要时才使用成员,且务必小心使用 。
建议10:模板可以用来构成类型安全且紧凑的数据结构,以及用来线性化类层次 。
2.《C++程序设计设计:原理与实践(原书第2版)》:27条
这里随机展示3条:
建议11:请不要低估类型安全的重要性 。类型是大多数正确程序的核心概念,大多数用于构建程序的有效技术依赖于类型的设计与使用 。
建议12:输入和输出是很难处理的,所以我们必须预计到输入输出中所面临的一定程度上的混乱,并接受它和适应它 。
建议13:当设计一个类时,我们必须考虑类的初始化、拷贝与析构 。
3.《C++语言导学(原书第2版)》:322条
这里随机展示12条:

文末送书  ?C++之父给C++程序员的1047条建议

文章插图
建议14:理解C++语言的原语是如何映射到硬件的 。
建议15:避免使用裸union,将其与类型域封装在一个类中 。
建议16:如果你的函数不抛出异常,那么将其声明成 。
建议17:如果成员函数不改变其对象的状态,将其生命为const 。
建议18:如果某个类是一个资源句柄,则它需要一个用户自定义的构造函数、析构函数和非默认的拷贝操作 。
建议19:不能将虚函数成员定义成模板成员函数 。
建议20:如果你需要一个简单函数对象且只用在一个地方,则使用 。