2

我刚刚购买了带有 Qt4 的 C++ GUI Programming,在阅读了本书中的代码示例后,我开始意识到我对 C++ 的了解并不完整。两年前,我从在线教程和我下载的几本电子书中学习了 C++,结果发现这些资源都不够好。从那以后,我没有接触过这门语言,而是一直在使用 Python。

现在,我正在考虑购买一本涵盖高级主题的 C++ 好书,而我想到的是 Bruce Eckel 的《C++ 思考》(两卷)。我知道它们可以在网上免费获得,但我真的无法忍受在笔记本电脑屏幕上阅读书籍。

既然 C++0x 可能很快就会出版,那么继续在这些书上花钱是明智之举吗?C++0x 会破坏向后兼容性吗?第 2 卷涵盖了多线程、模板等特性。这些特性中的任何一个在 C++0x 中会发生显着变化吗?

4

6 回答 6

11

我不会为 C++0x 屏住呼吸。我怀疑它会在本世纪末结束。即使它会出来,你也应该算上一年左右的时间让编译器来实现它。现在学习基础知识,当标准出来时,您应该相对容易学习大部分新功能。标准委员会以努力保持向后兼容性而闻名。

出于好奇,我个人不时检查标准的演变。订阅 Herb Sutter 的博客 订阅并查找标准更新。

我个人最喜欢的高级 C++ 书籍是 Bjarne Stroustrup 的 The C++ Programming Language, 3e。在语言和 STL 细节方面,这是我认为我从中学到最多的一本 C++ 书籍。斯科特迈耶斯的书也帮助澄清了很多事情。Meyers 用一种非常易读的语言(我相信是英语)写作,通常会发生的情况是我从 Meyers 的书中阅读了整个 Item,然后在 Stroustrup 的书中找到相同的信息,浓缩成一个句子左右。也就是说,迈耶斯的书在让你关注有趣的细节方面非常有用。

至于我期望线程的变化,我认为标准中将为此目的有两个新的库。概念是一个更大的变化,它们与模板有些相关。到目前为止,我们在 STL 中有一些概念,但这些都是约定;算法会对您传递给模板的类型做出假设,并且由于约定,您会知道传递正确的“类型类型”。这暗示了可怕的错误消息,我们都知道和“喜欢”的 STL 模板错误。概念将有助于解决这些问题。该语言还有其他改进(复杂性)。Herb Sutter 经常谈论它们。

于 2008-12-28T09:45:58.463 回答
7

买这本书当然是明智的。C++1x 几乎不会与以前的代码中断。几乎所有你学到的东西都可以用下一个 C++ 来实现,这将极大地帮助你理解为什么C++1x 会引入什么特性。例如,为什么会有可变参数模板,为什么会有这些概念

于 2008-12-28T09:21:54.470 回答
1

即使在某些功能上破坏了向后兼容性,最大的部分应该仍然有用。

此外,关于 C++Ox 的第一本书可能不是最好的。

我更喜欢一本关于 C++ 的非常好的书,而不是一本关于 C++Ox 的书。

于 2008-12-28T09:08:30.567 回答
1

我肯定会去买书

  1. 来自 Eckel 的那些书非常好,我非常推荐它们。
  2. 编译器需要几年时间才能赶上 C++0x 引入的新特性(看看模板支持怎么样!)
  3. 项目开始使用它们将需要更长的时间
  4. 最后,虽然我不详细了解新版本语言引入的 3 个更改,但 C++ 委员会在向后兼容性方面一直非常保守,因此您不应该有任何学习很快就会过时的风险。
于 2008-12-28T09:33:46.163 回答
1

除了你的任何其他书之外,我会赞同获得 Bjarne Stroustrup 书“C++ 编程语言(第三版和特别版)” http://www.research.att.com/~bs/3rd.html的建议可能有兴趣,如果你能负担得起多本书。如果你只买得起一本并且已经掌握了基础知识(就像你一样),那么我可能会向 Stroustrup 书学习。你不能越过从那个人自己那里得到事实。

如果您有兴趣,可以在此处跟踪 C++0x 的发展: http ://www.research.att.com/~bs/C++0xFAQ.html。如前所述,如果我是你,我不会屏住呼吸。

于 2008-12-28T13:54:44.187 回答
0

您可以尝试 Safari Books Online 之类的网站,以了解最新的技术和编程书籍。过去我买了几本 Ruby 和 Ruby on Rails 相关的书籍,但现在它们的用处要小得多,因为其中的内容已被弃用。

于 2008-12-28T09:12:43.413 回答