我刚刚用Qt4购买了C++ GUI编程,在阅读了本书中的代码示例后,我开始意识到我对C++的了解并不完整.两年前,我从在线教程和我下载的几本电子书中学习了C++,结果证明这些资源都不够好.从那时起,我没有触及过该语言,而是使用了Python.
现在我正在考虑购买一本关于C++的好书,其中涵盖了高级主题,我想到的是Bruce Eckel的C++思考(两卷).我知道它们可以在网上免费获得,但我真的无法忍受在笔记本电脑屏幕上阅读书籍.
既然C++ 0x很快就会推出,那么继续在这些书上花钱是明智的吗?C++ 0x是否会破坏向后兼容性?第2卷涵盖多线程,模板等功能.这些功能中的任何一个都会在C++ 0x中发生显着变化吗?
我不会为C++ 0x屏住呼吸.我怀疑它会在这十年结束时消失.即使它已经出局,你也可能需要一年左右的时间才能让编译器实现它.立即学习基础知识,在标准出来时学习大多数新功能应该相对容易.标准委员会以维护向后兼容性而着称.
出于好奇,我个人不时地检查标准的演变.订阅Herb Sutter的博客 供稿并查找标准更新.
我个人最喜欢的高级C++书是Bjarne Stroustrup的The C++ Programming Language,3e.这是一本单独的C++书籍,我认为我在语言和STL细节方面学得最多.Scott Meyers的书籍也帮助澄清了很多东西.迈耶斯用一种非常易读的语言写作(英语,我相信),而且经常会发生的事情是我从梅耶斯的书中读到了整篇文章,然后在Stroustrup的书中找到相同的信息,这些信息浓缩成一个句子左右.也就是说,迈耶斯的书籍非常有助于您关注有趣的细节.
至于我期望的线程更改,我认为标准中会出现两个用于此目的的新库.概念是一个更大的变化,它们与模板有些相关.到目前为止,我们在STL中有概念,但这些是惯例 ; 算法会对您传递给模板的类型进行假设,并且您知道由于约定而传递正确的"类型类型".这隐含了非常错误的消息,我们都知道的STL模板错误和"爱".概念将有助于解决这些问题 该语言还有其他改进(复杂性).Herb Sutter谈论了很多.
购买这本书当然是明智之举.C++ 1x几乎不会破坏以前的代码.几乎所有学到的东西都可以通过下一个C++实现,它将极大地帮助您理解为什么 C++ 1x将引入什么功能.例如,为什么它会有可变参数模板,以及为什么这些概念?