●不要沉迷於 C++ semantics 和 C++ object model
对於底层知识有浓厚兴趣的朋友,下探到 object model 领域,一定会非常开心地在 object size、object layout、vptr/vtbl、以及许多布幕後的技术之间玩将起来。了解这些东西,当然是好的,但是由於一探究竟得其奥秘的快感与成就感,使得一些朋友们在这个层面里「玩」起来了,小地方玩得很精,玩得不亦乐乎,玩得忽略了 C++/OO 的最终目标。
最终目标是 polymorphism!
我要说,在 C++ syntax 以及相对低阶的 C++ semantics 里,不要玩得太过火。过犹不及,会伤身的。C++ 经典名书内附的一些习题,在我看来颇有点玩得过火的味道。至於什麽百题精选、题库大成,除了修练基本功之外,都满无趣的东西。
Programming 应该是一种天马行空的想像力与创意的组合;如果你能够自己想题目,譬如说实作一个天体运行的 class 体系、或是实作一个生物分类(界门纲目科属种)体系,不是很有趣吗?准备资料的过程中,查查百科全书,你也因此查到了太阳系九大行星的几何资料,哈雷慧星的轨道周期,或是黑面琵鹭的「界门纲目科属种」英文名称,这难道不比钻研於 ++++i 或 ----i 或 *&*&p 之类的头脑体操题目有趣吗?(看过不少这类好笑题目,没一个记下来,只好胡乱写几个运算式。诸位应该知道我说的那种头脑体操题目)
固然,在科学与工程的领域里头,无技术无以为立,但别把自己弄得过於僵化,过於匠气。僵化与匠气是我们教育体系的最大沉疴。到了高专层次,败象显露无遗。
●名书推荐
如果没有介绍几本好书,我就是为德不卒。
让我再节录 <多型与虚拟> 的二刷感言:
<多型与虚拟> 一版二刷感言 (侯俊杰/松岗/1998/08)... C++ 相关书籍,如天上繁星,如过江之鲫。广博如四库全书者有之(如 The C++ Programming Language、C++ Primer),深奥宛如山重水复有之(如 Inside The C++ Object Model),独沽一味者有之(如 C++ Programming Style、More Effective C++),独树一帜者有之(如 The Design and Evolution of C++),另辟蹊径者亦有之(如 STL tutorial Reference Guide)。...
以下是我认为你应该要拥有的书籍。有趣的是,我才在自己班上做了一个调查(我教的是物件导向 Windows 程式设计,学生应该要有良好的 C++/OOP 基础),拥有以下 1~5 本书的人举手。举手人数都很少,而且老是那几位(最高记录是拥有四本)。这让我感觉,强者恒强,弱者恒弱。悲夫!
1. C++ Primer (3/e), Lippman/A.W./1998
(听说 1999 将有中译本)
2. The C++ Programming Language (3/e), Bjarne/A.W./1997
(听说 1999 将有中译本)
以上两本书是 C++ 经典百科。就内容水平而言,我认为同为瑜亮。 普遍的印象是,第一本较易接受,第二本涩味稍重。第二本书 作者 Bjarne 是 C++ 语言的创造者,所以有其权威性。我认识的多 位 C++/OOP 高手,都是两书齐具。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/