作者godfat (godfat 真常)
看板C_and_CPP
标题Re: [问题] C++深入必看的书
时间Wed Oct 18 20:23:05 2006
※ 引述《yoco315 (眠月)》之铭言:
: 《Inside C++ Object model》
这本我没看过,没看的理由是有点年代了
二来则是听说这本所谈的事过於底层,我兴趣没很大
不过听这样说起来,改天好像应该稍微翻一下 :p
btw, 本书作者 Stanley B. Lippman 也是名书 C++ Primer 作者
现在在微软工作的样子,C++/CLI 跟他关系似乎很深
前一阵子我看到一篇 Stanley B. Lippman 文章,声称 C++/CLI 是
C++ 的自然演进(用什麽词汇我忘了),
在 comp.lang.c++.moderated 引起广泛的讨论
: 《Modern C++ Design》
这本是我目前认为所有学 C++ 的人都应该看的书
除了大量使用 template 做到各种不可思议的事外,
作者的巧思与思维缜密也让人钦佩
不过这本的难度确实不低,初学者要看懂…实在没那麽容易
当初我翻半天也一直搞不太清楚他想说什麽
後来 Design Patterns 一书看得比较熟後,才能渐渐理解其背後的设计理念
作者 Andrei Alexandrescu 还有其他不少文章相当值得一读
http://erdani.org/ 中的 Other Publications 可以看到不少着作
(不幸的是,C/C++ Users Journal 好像已经…)
其中有不少文中提到的东西如今已经加到 Loki 之中
如 ScopeGuard, LockingPtr, SafeFormat 等
Usenet 的 comp.lang.c++.moderated 和 comp.std.c++ 也可以看到其踪迹
用 google group 看满方便的
http://groups.google.com/group/comp.lang.c++.moderated
http://groups.google.com/group/comp.std.c++
另外 Andrei Alexandrescu 和
http://www.gotw.ca/ 主持人,
Exceptional 系列书作者 Herb Sutter 合出过一本书叫
C++ Coding Standards, 这本无聊的话可以翻一翻,
因为他写得很简洁,随意看一看不会花太多时间。
我觉得 Effective 和 Exceptional 系列的缺点是太过於琐碎,这本倒是不会
但相对的,难度也就比较偏低,可以当散文看… XD
: 《C++ Templates: The Complete Guide》
这本我不是很喜欢,个人觉得把 template 规则看熟就够了,
不用特别阅读一本光讲 template 的书。至於一些设计的手法,
与其看这本不如看其他更专精的。不过就像 yoco 所言,
如果 Modern C++ Design 看不懂的话,确实可以用这本暖身… XD
另外我个人推荐的有…
C++ Template Metaprogramming
这本在开头有提到很多跟 template 有关的有趣技术
包括 boost.spirit, 一个强大的 parser 元件…
boost.phoenix, 可以实作 lazy evaluation...
实作 Embedded Domain Specific Language...
不过里面有一段在讲 boost.mpl 的部分,我就觉得有点烦,看不太下去了
但实作物理运算单位的那部分也很有趣 :)
再来的几本我觉得就比较没那麽需要特别去读了
boost 直接一个项目一个项目去翻他 doc 就好
不过如果觉得这样很烦的话,
Beyond the C++ Standard Library: An Introduction to Boost
这本我没有仔细看过,但之前翻过的几次是觉得还算不错
只是就真的是 introduction 罗…
再来如果觉得 boost 太多太烦了,可以先看
Pete Becker 写的 The C++ Standard Library Extensions
这本书有点在模仿 The C++ Standard Library, 连书名都好像 XD
内容则是详尽描述 TR1 的所有元件,包括 bind, function, unordered_map,
random, tuple, shared_ptr, weak_ptr, 等等 boost 中很 popular 的东西
p.s. TR1 是 Technical Report 1 的简称,目前除了 special math function 外,
已经全部纳入 C++0x 中,成为下一版的标准
一些资料可以看这个
http://en.wikipedia.org/wiki/Technical_Report_1
比较令人惋惜的是,目前我只知道 Dinkumware 有实作完整 TR1,
而我暂时不想掏钱买来试用看看……
boost 也有做 TR1 的 wrapper(wrap boost 来做的),
在 cvs 里面应该可以找到,缺点是就我上次来看,还很不完整,东缺西缺
: 前辈说直接看最新的 lib 就好了
快叫前辈出来发言…?
: boost 跟 loki 是很先进没错
: 不过我觉得太先进了 XD
: 如果没有先把一些基础的东西念一念
: 直接看 lib 也看不懂
我觉得 StubbornLin 应该有能力直接阅读这些 lib 了
直接阅读 lib 的好处是,可以挑重点看,不会被一堆介绍搞昏头了
碰到有什麽不太理解之处,也能直接翻出 source code 找出问题点
Loki 是有一点难,但 boost 我觉得还好,直接看应该不会有太多问题
当然要花时间是一定的,好歹他也是 boost... XD
而且就量而言,他是 Loki 的好多好多倍大…
ACE 的东西我觉得应该也是可以看一看,可惜的是我个人跟网路不太熟,
所以上次翻了一下的结果是觉得有点不知所云 Orz
另外 GUI 的部分,wxWidgets 和 Qt 都有出很新的书,
我是没看过,但我想应该都颇有参考价值的
btw, Scott Meyers 也有出一本书叫 Effective STL,
这本我没看过,不过有些文章也有 refer 这本,应该也是可以看看
--
By Gamers, For Gamers - from the past Interplay
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.165.59
1F:推 UNARYvvv:这麽用心的心得和建议,一定要推啦! 10/18 22:34