谁能推荐一下学C++的入门经典书?

软件和网站开发以及相关技术探讨
头像
linfeng
帖子: 74
注册时间: 2005-11-17 0:09

#31

帖子 linfeng » 2006-05-30 10:31

C++primer (第四版)已经出了 入手正在钻研
这次我离开你,是风,是雨,是夜晚;你笑了笑,我摆一摆手,一条寂寞的路便展向两头了。
我的E盘:http://iamjoke.ys168.com/
blog:http://waitforlynn.spaces.live.com
NoteBook: Dell Latitude E6400
cydusk
帖子: 16
注册时间: 2005-05-16 15:16
来自: SH.CN

#32

帖子 cydusk » 2006-06-11 16:38

jaguar00 写了:C++创始人写的那本书。Bjarne Stroustrup - The C++ Programming Language 3rd Ed
感觉这本书看上去比较羞涩,如果是新手的话可能会有点困难,上来用不着那么细
个人比较推荐
《Essential C++》以及钱能的《C++程序设计》(貌似有第二版了)
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#33

帖子 BigSnake.NET » 2006-07-05 13:41

eexpress 写了:从c++学起?学过什么其他的再学这个吧。
其实没c基础的人学c++会学的更好
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#34

帖子 ectotherm » 2006-07-05 15:09

C 和 C++ 完全不是一回事,还有个人推荐看 C++Primer by Stan B. Lippman。

The C++ Programming Language by Bjarne Stroustrup 堪称 C++ 的经典之作,也是 ISO C++ 委员会参考读本,前面也有人说了,这本书非常晦涩,所谓字字箴言的意思就是那本是非常适合不错过每个字地看。

C++Primer 3ed 的就好了,不要买 4ed 的。3ed 是潘爱民翻译的,文字质量不错,但是我只是粗略看了下。我自己是看 TC++PL 的,但是在系统学习 C++ 之前,我有较深的 C++ 编程基础。

有人说了一大堆的书,我觉得先不要好高骛远。C++Primer 3ed 如果认真地看的话,就算是天才也要将近 2 个月。等看完了再考虑接下来要看什么。还有建议不用选择太多,C++Primer 是公认的 C++ 入门级书。
头像
yang119345
帖子: 570
注册时间: 2005-06-19 14:22
来自: 上海
联系:

#35

帖子 yang119345 » 2006-07-05 18:15

BigSnake.NET 写了:
eexpress 写了:从c++学起?学过什么其他的再学这个吧。
其实没c基础的人学c++会学的更好
c和c++根本就是两码事~没c基础的,比有c基础的更不容易陷入c语言经验的泥沼~
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#36

帖子 ectotherm » 2006-07-06 10:04

C++ 的经典之处并不在于其的面向对象编程,而是 GP。要知道 GP 对 C++ 的影响多大,这么说吧,C++ 标准库中(扣除兼容 C 标准库的那部分)几乎都是 GP 风格的代码。这里不得不提的是 STL,用 Generic 的思想,可以说把性能以及复用性发挥到了极至,把耦合性降到了非常低。就快要到来的 C++0x 标准对 GP 更是提供了加强。
rainer_823
帖子: 189
注册时间: 2006-07-10 11:35

#37

帖子 rainer_823 » 2006-07-11 9:49

真是太感谢那位仁兄了
rainer_823
帖子: 189
注册时间: 2006-07-10 11:35

#38

帖子 rainer_823 » 2006-07-11 9:53

不是把
是全英文的呀

救命

有中文的吗??
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#39

帖子 ectotherm » 2006-07-11 13:02

去买本 c++primer 3ed 中文的,有打折的,那书值得收藏
ascend1
帖子: 20
注册时间: 2006-07-16 9:59
来自: Tianjin, P.R.China

#40

帖子 ascend1 » 2006-07-19 9:34

学了C之后再学C++很难理解后者的精髓,有相当长一段时间都使用C++的代码写出具有鲜明C特色的程序:)个人感觉面向对象更像是一们哲学,思想精髓理解了,指导实践就很有效。
我看过 Thinking in C++ 和 C++ Primer Plus,看前面一本的话最好看原版,中文译版我有很多时间都在揣测译者到底是否明白原意。不过这本书真的非常精辟,有很多地方一般书籍略过,而在这里都能有详尽的原理解释,很透彻。后者也不错,翻译水平也很高,感觉是面面具到。平时写程序有些地方忘记了查一查这本书,呵呵,有点当字典用。
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#41

帖子 ectotherm » 2006-07-19 14:28

sorry 楼上误解 c++ 的精髓了。我就是从 c 转 c++ 的,用 gp 写程序的是算法 + 数据结构,跟 c 类似但是在抽象上完全超越了 c,但绝不是说 gp 不用 c 的算法思想。c 的思想远远在单纯地 oop 之上,在思维上 oop 比在行为上 oop 要高级多了,不然 unix 怎么可能 30 年不败,同样是 at&t bell 为什么 unix 不用 c++ 编码。不了解 gp 的话,建议看看 stl 的实现。gp 可以说是算法 + 数据结构,但是用 generic 的框架进行编码。效果远远在 oop 之上。
如果说面向对象就是 c++ 的精髓话,你污辱了 c++ 从 1994 年至今的英明。stl 在 1978 年就看到了泛型的威力,c++ 在 1991 年可以说是为了 stl 才正式加入 generic 的特性,但到 1994 年才商业发布。
PS: 我没看过 TIC 或者 CPP,只看过 The C++ Programming Language, C++ Templates, Modern C++ Design, C++ Coding Standard, C++ Common Knowledge, C++ STL, The STL and Generic Programming, The C++ Complete Reference, ...

Sorry 心情不好,说话冲了点。
ascend1
帖子: 20
注册时间: 2006-07-16 9:59
来自: Tianjin, P.R.China

#42

帖子 ascend1 » 2006-07-21 0:13

OK,我当然不否认C++从94年开始的成功。但是C++到现在已经20年了,难道说C++仅因后十年成功?我们看到了C++的两个阶段,你所崇拜的是C++引入STL后的强悍,我所崇拜的是C++起初面向对象的思想。我只是觉得,C++是人类对世界观认识的一个重大突破。STL使得工作效率大幅提高,我到不太在意。因为没有哲学指导,人类的世界必将崩溃。社会在进步归根结底是人类的思想在进步,而提高工作效率的方法只是人们在实践中的摸索。为了提高工作效率,提高编写质量,现在人们使用STL,觉得gp,STL如此强大,但是从历史的角度来说,这不过是一瞬。也许时间重流,人们发现的就不是gp了,变成什么其他的kf也不一定。但是无论历史重演多少次,人们对世界的认识由面向过程到面向对象的飞跃是不会改变的。这是人类必经的过程。而C++在这一历史不可磨灭的一页中写下了浓墨重彩的一笔,这恐怕是我们的后人能够记起C++的最重要原因。因此,我崇拜C++,崇拜他OO的思想。引入STL延续了C++的辉煌,但决不可磨灭C++推动历史车轮的贡献。
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#43

帖子 ectotherm » 2006-07-21 8:01

stl 证明了 c++ 之前 oop 的不恰当。简单地说,因为 c++ 引入 stl,所以影响了整个 c++ 标准库用 gp 的方法重写。我并不是反对 oo,但为什么 c++ 在引入模板的特性后重写 scl 呢?难道 oo 的 scl 比 gp 的 scl 更优秀吗?

stl 并不只是带来效率的提高,这个你误解了 gp。效率只是 gp 方法的一个“好”的副作用,gp 的威力完全在于它的抽象上,对 stl,很多书都肤浅的评价道:带来了效率的大幅提高,耦合性的大幅下降,但是要真正体会 gp 的优美的话,还是要读读 stl 的代码(这里推荐 sgi stl)。可以预览下 c++0x 的标准,在 c++ oop 的方面几乎没什么加强,但是对 gp 的支持加强了许多,比如 concept 关键字等等,我对 c++0x 认识得很浅。

我在 c# 2 上写代码,不敢苟同 c# 的纯 oop 模型,但是令人啼笑皆非的是,PetShop .NET 4.0 中,使用了一些 gp 的手法——但是 c# 实现的 gp 总是感觉很别扭,你去看看,AccountController, CartController 等类,无非用 oop 方法封装一些单纯的、可以独立的过程。***Controller 做为一个 namespace 不需要保存状态的东西就能工作了。(有人提意见 c# 是不可以 gp,后来想想也对,没有 generic iterator 的机制,c# 只能是对 gp 的模拟,不可能实现 gp 的)

PS: C++ 不是 20 年,而是 27 年,1979 年 at&t bell Bjarne Stroustrup 设计了第一个 C front。stl 于 1978 年就提出了思想,开始用 ada 实现的,1984 年开始与 c++ 接触,但那时是非官方的 c++ 编译器支持 template 特性(官方很多,应该说 template 并不得到普遍 c++ 编译器的支持)。并不是说 1994 年后才有 template 的,是 1994 年正式加入,事实上从 1984 年就在 c++ 中使用 stl 了。国内非常遗憾,到了 2000 年后才逐渐引进关于 c++98 的书。我学习 c++ 的时候,几乎没有中文的资料,那时候也罕得有网络,更不用提什么电子版,还好有地方借外文的图书。还有不要动不动提哲学,我一个朋友研究哲学精神分裂了,关于 gp 不是哲学家的专利,而是 c++ 粉丝们工具——这方面建议看孟岩的文章(http://blog.csdn.net/myan/archive/2001/09/29/1911.aspx)。

当你深入了解 gp 之后,也许会和我一样支持 gp 而不是 oop 的。oop 的抽象比起 gp 来说差远了。
ascend1
帖子: 20
注册时间: 2006-07-16 9:59
来自: Tianjin, P.R.China

#44

帖子 ascend1 » 2006-07-21 11:51

我们争论的仍不是一个方向。你很重视实践中的表现,因为这正是人们所能看到的成功。你的朋友如果研究哲学,我不承认他会精神分裂。研究哲学精深的人思想高度已经超越了平均水平,然而当一个人的思想与社会矛盾时,自然就是异类。哲学家才是人类前进的领导者,什么科学家,文学家,不过都是在当前人类认知水平和自然规律的支配下前进罢了。你看我是不是也有些精神分裂?呵呵,相信历史,信仰哲学。人类本应如此,不分从文或是从理。
头像
ectotherm
帖子: 225
注册时间: 2006-05-23 13:35
联系:

#45

帖子 ectotherm » 2006-07-21 14:12

:shock: 太深奥了,看不懂,btw 问下,研究过后现代哲学吗?当然我没有,本人是实干主义者,东西能生产出来,谁管它哲学不哲学。
回复