我对c ++很感兴趣,想要掌握这门语言.我读了很多关于c ++的书.我想阅读一些库源代码以提高我的技能,但是当我阅读boost库源代码时,我发现它非常困难.
任何人都可以给我一些关于如何阅读提升源代码的建议,在我能够理解它之前我应该阅读哪些关于c ++的书?
Jar*_*Par 15
如果你是从C++开始,那么boost源代码可能不是最好的地方.这是巫师们在这里闲逛的地方,他们处理模板魔法.我认为更好的起点是Scott Myers和Herb Sutters的书籍(按此顺序).
斯科特的一些版本的书可能有点过时,但它们在基本面上仍然很强.赫伯的书很多次都值得阅读,是一本非常宝贵的工具.一旦你通过这两位作者,那么将是解决增强源代码的好时机.
OJ.*_*OJ. 14
我无法就如何阅读增强代码提出建议,但我可以提供一些其他建议.
停止阅读并开始写作 :)阅读很有价值,但除非你自己开始编写代码,否则你不会在任何地方学习.从基础开始.阅读初学者书籍并输入样本(不要复制和粘贴).您将通过必须修复由于错误输入而导致的错误来学习.在简单的应用程序中使用您自己的一些想法并从那里开始.
通过阅读提升源代码开始是一种可靠的方法,可以吓跑自己的语言和/或最终与很多问题混淆.
从小处着手,一路向上.
iai*_*ain 13
既然你提到你想要学习元编程的黑暗艺术,那么我会推荐Andrei Alexandrescu的"现代C++设计".
元编程是一个非常复杂的领域,大多数时候都不需要.一旦你了解它,就很容易认为它可以解决你所有的问题.它成为你最喜欢的锤子.
在将其添加到您自己的代码之前,我还建议成为基于元编程(如boost和loki)的库的非常熟练的用户.
两个不同的程序员在我负责的代码库的部分内容中使用了元编程.虽然他们是熟练的程序员,但商业产品不应该像操场一样对待.这些可能是我们现在代码库中最糟糕的区域,当您添加对新编译器的支持时非常复杂且非常脆弱.如果我在编写代码时对代码负责,那么它们就不会在这里,现在它们的代价太贵了.
简而言之,除非您是图书馆作家,否则很少需要元编程.如果没有一个非常有成就的图书馆用户,你就不能成为图书馆作家.
我认为boost使用了很多高级的c ++功能,比如模板等.Boost库往往非常复杂,因为它们试图遵循严格的编程标准和样式,以便与STL之类的东西兼容.
很简单,如果你不理解它,你可能已经过头了.如果你理解它,你无论如何都不需要阅读它.如果你不知道如何游泳,不要跳入水中......你基本上试图游泳瀑布.
| 归档时间: |
|
| 查看次数: |
3859 次 |
| 最近记录: |