0

我已经学习了最基本的 C++,但我觉得我不知道如何组织代码和启动 C++ 项目。我搜索了有关项目/代码组织的指南,但运气不佳。

所以我想找一个代码很好的真实程序来看看它是如何组织的,但我什么也没找到。有谁知道 C++ 中一个真正组织良好的程序?最好是开源的、基于终端的和仅适用于 Unix 的。

谢谢。

4

5 回答 5

2

这主要取决于几件事:

  1. 支持的平台:如果您以不同的方式抽象不同的平台,这会将您推向或拉向不同的代码结构。
  2. 构建系统:CMake、qmake、autocr*p、Ant、Bjam、jam 等
  3. IDE:这不会是一个阻碍,但仍然可以决定第二个。
  4. 它是仅 GUI 或控制台还是库项目:这将迫使您以不同的方式构建程序,特别是如果您遵守拆分 GUI 和“处理”功能的潜规则。一个库需要一个很好的 API 标头集,另一个(非库 API 绑定)项目将让您在这方面自由。
  5. 你认为什么是最好的?如果您在某个设置中感觉不对,请不要使用它并进行重构(当然,如果它不会占用您所有的时间......

我刚刚开始了一个不起眼的 C++ 项目,有一个小的平台抽象层,也许可以给你一些提示/建议。源代码可在此处查看(现在完全没有功能,使用 qmake 构建):http: //sourceforge.net/p/ambrosia/git -> 浏览

我做了什么: - 一个平台抽象标头,它提供与平台无关的函数定义,这些函数定义在(当前)每个平台一个源文件中实现。- 一个全局标题,包括几个标题,其中包含几乎无处不在的东西。- 一些子文件夹按照代码的目标进行逻辑组织。

于 2010-11-17T19:38:27.860 回答
1

通常,在开始编码之前要做的第一件事是确定命名约定。
变量名、类名、命名空间、方法名等。
然后你必须决定头文件和 cpp 文件中代码的分离以及它们将驻留的目录(相同的目录或不同的目录)。
目录名称应该是有意义的(这里有更多的约定),即一个提供许多组件使用的实用方法的类应该放在子目录 ec /common 或 /util 中。
您应该决定版本控制系统,例如 clearcase。
还有一个非常重要的点(恕我直言)是如何完成日志记录。这必须实施并与所有模块保持一致。
这些都是需要关注的重点,因为在研究一个现成的项目时,可能会很耗时,因为您必须对其进行大量研究,才能注意到代码的所有约定和底层关系。此外,您不会知道为什么一种约定优于另一种约定。

于 2010-11-17T20:10:55.217 回答
0

在 C++ 应用程序中组织代码没有被广泛接受的规则。例如,我更喜欢使用命名空间,为每个命名空间创建一个单独的文件夹,并将与该命名空间相关的所有头文件和源代码放入相应的文件夹中,因此项目根目录仅包含带有 main()、makefile 和可能几个其他文件。但是,其他人可能有不同的偏好。

于 2010-11-17T19:32:15.813 回答
0

您可以将它们放在不同的文件夹中并使用另一个文件来获取/包含文件中的两个文件,您将使用它们作为您的包含。访问下面的链接,我将向您展示如何实现自己的文件组织结构。 http://codednotes.blogspot.com/2014/01/organising-headers-and-source-files.html

于 2014-01-05T20:50:17.397 回答
-1

谷歌的 C++ 风格指南

例如,我建议看一下 Google Chrome 的源代码。它很大,但自从谷歌做到了,我相信他们确实认真对待编码标准,探索一下也不错。

于 2010-11-17T19:36:50.857 回答