还可以使用旧的C++书籍来学习编程吗?

Q-b*_*uit 7 c++

我从1999年在书架上找到了Ivor Horton的Beginning C++,我想知道它是否过时有用.我已经知道一些C++了,但是我想把书作为参考.我应该投资一本较新的书还是1999年的语言非常相似?

谢谢!

Ton*_*ion 22

简短回答:不会.旧书包含过时的编程技术,这些技术会在当前的编程环境中创建错误的代码

  • @Let_Me_Be - 这不是关于语言特征,而是关于我们如何*使用*语言 - 成语.自1990年代以来,情况发生了很大变化. (7认同)
  • @SteveWellens随着c ++ 11,这肯定发生了变化.移动语义,nullptr,初始化列表,shared_ptr,......大规模改变代码的结构.即使是简单的任务,例如"编写一个给我500个元素的矢量的函数"看起来也不同. (6认同)
  • @Let_Me_Be:正如johannes所说,对于C++来说这是_esECIF_ true.1999年的一本书有90%的机会甚至没有覆盖C++ 98,更不用说C++ 03 - 而C++ 11带来了更大的变化.因此,Tony的回答是"+ 1". (6认同)
  • @TheBuzzSaw:带有C++伪装的C不仅有害,而且你可以教给任何人最糟糕的事情.C++的基础知识是RAII,模板和所有权,而不是恶心的指针废话或继承.带有Classes代码的C很糟糕,你应该感到害怕将它施加在另一个无助的灵魂上.此外,C++ 11现在已经成为主流.甚至当MSVC支持lambdas和rvalue引用时,你知道它是主流. (4认同)
  • @TheBuzzSaw:不.我不知道你是否错过了这个,但C++的"基础知识"已经发生了很大变化.在rvalue引用之间,以及那个时代的许多书籍用C++语言教C的事实,我肯定会建议一个更新的文本. (2认同)
  • @TheBuzzSaw不是"100%错误",而是学习早期最先进的"最佳实践".因此,如果可能的话,应该考虑更新的学习资源. (2认同)
  • @TheBuzzSaw:它*100%错误,该书中涵盖的内容是*不是*C++.从短期来看,"带有C++伪装的C"是不好的*和*.任何人都没有理由去学习它.此外,尽管MSVC不支持C++ 11的某些部分,但它们是最不重要的部分.MSVC现在支持C++ 11远远超过VC6支持的C++ 98.关于你不知道的企业将会做什么的概括是无关紧要的.事实是每个主要编译器都支持rvalue引用,lambdas,auto,decltype,nullptr,static_assert.这是主流支持. (2认同)

Pup*_*ppy 12

1998年的书是一大堆垃圾.甚至不要考虑使用它.它是"带有特定于Microsoft的库的C类,这些库现在很糟糕,现在更糟".即使忽略了C++ 11中的大规模语言变化(其中许多甚至影响初学者),它仍然会浪费你的时间.

章节列表中充满了OLE自动化和ActiveX控件 - 没有提到标准库.在它感染之前烧掉它.