使用しようとしている基本ファイルがあります。
#ifndef POINT_GUARD
#define POINT_GUARD
//------------------------------------------------------------------------------
struct Point {
int x, y;
Point(int xx, int yy) : x(xx), y(yy) { }
Point() :x(0), y(0) { }
};
//------------------------------------------------------------------------------
inline bool operator==(Point a, Point b) { return a.x==b.x && a.y==b.y; }
//------------------------------------------------------------------------------
inline bool operator!=(Point a, Point b) { return !(a==b); }
//------------------------------------------------------------------------------
#endif // POINT_GUARD
ガードに包まれていることに注意してください。これで、これが2つの異なるファイルにインポートされます。ただし、エラーが発生します。
struct Point
それが「ポイントの再定義」であるとヒットするとすぐに文句を言います。ここで何が起こっているのか考えてみませんか?