【发布时间】:2014-03-07 12:37:41
【问题描述】:
我正在使用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 并声明了使用的类,我认为这就是所谓的“前向声明”(如果我错了,请纠正我) 无论如何它终于编译了,我将开始测试。
如果你有任何意见,那么无论如何,你可以添加。
【问题讨论】:
标签: class uml diagram cyclic-dependency