首页 >> 大全

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

2023-11-06 大全 27 作者:考证青年

从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条建议(文末送书)_​C++之父给C++程序员的1047条建议(文末送书)

建议14:理解C++语言的原语是如何映射到硬件的。

建议15:避免使用裸union,将其与类型域封装在一个类中。

建议16:如果你的函数不抛出异常,那么将其声明成。

建议17:如果成员函数不改变其对象的状态,将其生命为const。

建议18:如果某个类是一个资源句柄,则它需要一个用户自定义的构造函数、析构函数和非默认的拷贝操作。

建议19:不能将虚函数成员定义成模板成员函数。

建议20:如果你需要一个简单函数对象且只用在一个地方,则使用。

建议21:不要重新发明轮子,应该使用库;当有多种库可选择时,优先选择标准库。

建议22:将regex用于正则表达式的大部分常规用途。

建议23:在使用一个文件流之前,记得检查它是否依附于某个文件上。

建议24:如果要在大量数据中执行搜索操作,请选择无序容器。

建议25:与垃圾回收机制相比,请优先选择智能指针。

不管你现阶段的C++功底如何,应该或多或少都能感受这些最佳实践的价值。用“字字珠玑”来形容,一点也不夸张,有的是只有只有站在C++语言设计者才能明白的,有的可能是要踩了无数坑并付出一定的代价后才能明白的。

如果能将这1047条最佳实践吃透并灵活运用,不敢说你从此在C++领域可以封神(才是yyds),但绝对可以称得上是高手。

要学好C++,最重要的是编程实践,一定要编写和阅读有一定复杂度的工程化代码,而不是Demo或玩具代码。提到实践,上面提到的C++之父的这3本书也会给你惊喜,因为书中有2000-3000个代码示例,这些代码示例都是工程代码简化而来的,同时这3本书中还有1000多道习题。

如果你想跟着C++之父学习最正统的C++,想了解C++的最新动态,想学习的过程事半功倍,推荐你了解C++之父构建的C++元宇宙。

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了