从boost库源代码学习c ++

时间:2009-06-11 03:32:54

标签: c++ boost

我对c ++很感兴趣,想要掌握这门语言。我读了很多关于c ++的书。我想阅读一些库源代码以提高我的技能,但是当我阅读boost库源代码时,我发现它非常困难。
任何人都可以给我一些关于如何阅读提升源代码的建议,然后才能理解我应该阅读哪些关于c ++的书?

6 个答案:

答案 0 :(得分:15)

如果你是从C ++开始,那么boost源代码可能不是最好的地方。它就是巫师们在这里闲逛的地方,他们处理模板魔法。我认为一个更好的起点是Scott Myers和Herb Sutters的书籍(按此顺序)。

斯科特的一些版本的书可能有点过时,但它们在基础知识方面仍然很强。赫伯的书很多次都值得阅读,是一本非常宝贵的工具。一旦你通过这两位作者,那么将是解决增强源代码的好时机。

答案 1 :(得分:14)

我无法就如何阅读增强代码提出建议,但我可以提供一些其他建议。

停止阅读并开始写作 :)阅读很有价值,但除非你自己开始编写代码,否则你不会在任何地方学习。从基础开始。阅读初学者书籍并输出样本(不要复制和粘贴)。您将通过必须修复由于错误输入而导致的错误来学习。在简单的应用程序中使用您自己的一些想法并从那里开始。

通过阅读提升源代码开始是一种吓跑自己语言和/或最终与很多问题混淆的明智方法。

从小处着手,继续前进。

答案 2 :(得分:13)

既然你提到你想要学习元编程的黑暗艺术,那么我会推荐Andrei Alexandrescu的“现代C ++设计”。

元编程是一个非常复杂的领域,大多数时候都不需要。一旦你了解它,就很容易认为它可以解决你所有的问题。它成为你最喜欢的锤子。

在你将它添加到你自己的代码之前,我还建议你成为一个非常熟练的基于元编程的库用户,比如boost和loki。

两个不同的程序员在我负责的部分代码库中使用了元编程。虽然他们是熟练的程序员,但商业产品不应该像操场一样对待。这些可能是我们现在代码库中最糟糕的区域,当您添加对新编译器的支持时非常复杂且非常脆弱。如果我在编写代码时负责代码,那么它们就不会在这里,现在它们的代价太贵了。

简而言之,除非您是图书馆作家,否则很少需要元编程。如果没有一个非常有成就的图书馆用户,你就不能成为图书馆作家。

答案 3 :(得分:8)

我认为boost使用了许多高级c ++功能,比如模板等.Boost库往往非常复杂,因为它们试图遵循严格的编程标准和样式,以便与STL之类的东西兼容。

很简单,如果你不理解它,你可能已经过头了。如果你理解它,你无论如何都不需要阅读它。如果你不知道如何游泳,不要跳入水中......你基本上试图在瀑布中游泳。

答案 4 :(得分:1)

是的,在一些boost库中有一些非常糟糕的东西。如果您想阅读一些非常好的源代码,请尝试查看WebKit或某些Google开源项目(如Chrome或Protobufs)。

答案 5 :(得分:0)

我建议你从Lipmann的Premiere(其他begginers书籍)开始 你的喜好)。然后,当您对代码感到满意时,可以继续使用Herb Sutter, Alexandresku拓宽视野,获得更完整的软开发视图。和 最重要的是 - 为了能够放弃,我必须编写A LOT,因为它是一种技能 任何其他的,需要练习掌握。

P.S.>如果你有信心,你可以从一开始就拿起Stroustrup和其他人一起 图书)。我不认为C ++上的另一个来源与作者一样完整。