两个标题或源文件互相引用

时间:2015-08-23 09:18:00

标签: c++

我正在尝试下棋。在类图中我放了一个指向对象方块的指针,指向它的“位置”,反之亦然:方形指针指向图形。问题是这些类的定义在单独的文件中。当我在figure.cpp中编写#include "square.cpp"时,反之亦然,编译器在#include的行中显示许多错误,如:

从[路径到图]  从[路径到广场]

有没有办法让它发挥作用?

2 个答案:

答案 0 :(得分:0)

尝试在标题中添加包含警戒:

#ifndef YOURHEADER_H_ //at the start of the file
#define YOURHEADER_H_
// the header contents
#endif //this has to be at the end of the file

答案 1 :(得分:0)

首先,请注意您可以避免使用任何应用程序#include(因此只包含外部库的系统标头或标头),并且只需复制&将源代码粘贴到多个文件中。那会很不方便。阅读有关C preprocessor的更多信息。请注意,它主要是进行文本处理(例如,对C ++语法或AST s不太了解。)

然后,常规,头文件主要包含声明(类型,structclass,函数,变量,...)和{em>定义 static inline个函数(或inline - es的class个成员函数。

因此,您最好不要在#include "square.cpp"源文件中figure.cpp,而是在{{1}中只有一个myheader.h个文件#include "myheader.h"square.cpp源文件(即translation units)。

阅读更多图书about C++ programming并研究某些C ++ free software的源代码,例如hun7err's ChessChessPlusPlus(我不是国际象棋编程专家,通过快速谷歌搜索找到了他们两个)