我可以帮您翻译成中文:我在哪里可以找到好的C++源代码?

19

我正在学习C++,这是我的第一门编程语言。如果我不开始看实际的代码,我感觉我快要到达学习的瓶颈了(我并没有通过课堂学习)。以下是我的两个主要问题:

  1. 哪里可以找到源代码?
  2. 如何判断代码质量的好坏(我显然从未在工作环境中进行过开发)?

我希望这与SO相关,但我可以看到关闭此问题的必要性。谢谢您的帮助。


相关:

现代C++示例?

10个回答

5
我建议使用Boost。使用Boost可以简化您的程序设计。阅读Boost源代码可以向您展示如何以简洁的方式使用C++解决一些具有挑战性的问题。
这个附加库本身是用C++编写的,以同行评审的方式进行,并具有高标准的质量。

6
使用Boost库非常好,但我不建议让C++学生阅读Boost源代码;它过于依赖高级技术,如模板元编程,并且因各种编译器解决方法而变得混乱(必须这样)。 - Josh Kelley
8
荒谬的建议。 - user1157123
@infact,能否详细说明一下?我认为Josh Kelley的评论非常有建设性。你想补充些什么呢? - Mike Ottum
目前大多数编译器还不支持C++11标准。 - Alston

4

我认为你找到C++代码的两个最佳选择是去流行的开源代码库。

这些都有高质量的C++项目供您查看。我不认为有一个伟大的标准可以在大规模上评判质量。我会从更受欢迎的项目开始,这些项目可能更有可能拥有高质量的代码。


1

0
我会推荐OpenSG。它是一个有趣的话题,它使用并发建模、网络编程,并包括科学论文链接,文档详尽,使用真正的C++,而不是面向对象的C语言,几乎不过度使用子范例,易于访问。而且谁能猜到……我是它的粉丝;)。 OpenSG-主页

0

网络上充满了开源的C++代码。为什么不选择一些这样的项目,甚至更好的是开始帮助它们呢?最好的学习方式就是通过实践!


你有什么特别的建议吗?我也在尝试学习C++。虽然我可以很容易地在网上找到大量的开源项目,但很难告诉我哪些是“好”的代码示例。我的直觉告诉我像Firefox或OO.org这样的东西应该有好的代码,但可能会有更适合初学者的较小的开源项目吗? - Calvin

0

我有这些书,但是书本身存在一个问题——它们只教你如何解决具体的问题,而不是如何解决问题的方法。 - jkeys

0

我认为你已经得到了一些好的答案,我想为从开源项目库中选择一个项目添加以下建议:选择一个广泛使用但最好是规模较小、已经存在一段时间并且针对你特别感兴趣的领域的项目。这样,你将能够更好地了解生产就绪的代码,并能够学习有关该领域的知识。


0

我发现POCO的源代码和文档非常易读,

  1. 与其他一些开源项目不同,这个库专注于开发完整的应用程序,因此涵盖了相当广泛的领域(文件系统、文本处理、网络、日志等),而不是只关注解决某个特定问题,比如GUI或日志记录。
  2. 它使用现代C++语法。因此通过阅读实现代码,您还可以学习现代C++技能。

-1

-1

C++是一种很棒的语言,但作为第一门语言有点沉重。可以尝试 python

1)我在哪里可以找到源代码

阅读代码比编写代码更难。尤其是像C ++这样的大型复杂语言。如果你不知道语言的细节,就没有太多机会从他人编写的复杂代码中获取知识。你必须首先独自学习最基本的部分,通过编写来掌握它。当你学习C ++时,你也会学习编程。

2)代码质量的好坏如何判断

并不存在一种特定的方法。这也不是一个容易学习的事情,需要经验。但真正区分好代码和坏代码的方法是,在你熟悉项目布局之后,你可以理解任何给定代码段执行的任务。可读性强的代码具有良好的代码质量,而令人困惑的代码则不佳。

查看他人的代码是学习基础知识的一种困难方式。在网上找一个教程,通过实践来入门。我相信也有很多关于这个主题的印刷书籍

在你学习过程中,如果遇到困惑或迷失,请在这里发帖提问。


1
我已经写了几个程序和算法。我并不觉得它很压抑,只是需要更多的时间。此外,在我更好地理解这种语言之前,我不能被要求开始学习另一种语言。 - jkeys
这不是问题的答案。我目前也面临着同样的困境,需要查看专业(或半专业)的源代码来学习如何做酷炫的东西。如果不这样做,我可能会弄清楚某些功能的实现方式,但可能不知道如何将所有内容组合在一起构建一个精美的项目。我想学习更多关于C++的知识。我已经掌握了足够的知识,如果换成另一种语言,甚至连文档、教程、参考资料等都更少,那几乎是浪费时间。 - American Patriot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接