我正在将 VS2012 用于我们从头开始的课程项目,我们将使用 C++ 创建这样的东西(我认为聚合部分是相反的):
https://www.dropbox.com/s/w2zh7yltbups6cm/class.png
好吧,我们在纸上写了,为每个类编写代码没有任何问题,除了我们无法测试,因为每个类都依赖于当时尚未完成的另一个类。长话短说:每个类都有自己的未经测试的代码,VS 不会检测到任何错误,根据我们以前的经验,我们知道代码是正确的,反正没有语法错误。
当我开始编译大约 500 个错误时,其中一些错误出现在“time.h”中,我认为编译器有问题,尝试切换到 C::B 并查看它是否有效,但我需要一个不同的编译器,我没有时间下载任何大文件,严重的是,2 天内的截止日期和互联网速度很糟糕。
在这里做一些研究(和谷歌搜索)我把它缩小到循环依赖,我了解到我可以在 VS 中绘制图表并获取代码文件,不幸的是它是在 C# 中完成的,而我有一个 C++ 代码(它必须是 C++ ) .
我怎样才能在 C++ 中实现这个图?哪个类应该包含哪些标题?将来如何避免这种情况?
编辑:通过删除所有依赖项并禁用预编译的头文件来解决它(不知道我是否必须这样做),然后我将每个 .h 包含在其相应的 .cpp 中,然后我在每个 .h 中包含它需要的每个头文件利用。所有这些并没有真正解决我的问题,它是声明!我对每个标题做了#ifndef myclass, #define myclass并声明了使用的类,我认为这就是所谓的“前向声明”(如果我错了,请纠正我)无论如何它终于编译了,我将开始测试。
如果您有任何意见,那么您可以添加它们。