我正在尝试下棋。在类图中我放了一个指向对象方块的指针,指向它的“位置”,反之亦然:方形指针指向图形。问题是这些类的定义在单独的文件中。当我在figure.cpp中编写#include "square.cpp"
时,反之亦然,编译器在#include的行中显示许多错误,如:
从[路径到图] 从[路径到广场]
有没有办法让它发挥作用?
答案 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不太了解。)
然后,常规,头文件主要包含声明(类型,struct
,class
,函数,变量,...)和{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 Chess和ChessPlusPlus(我不是国际象棋编程专家,通过快速谷歌搜索找到了他们两个)