我有一个像这样的 C++ 文件
#ifndef _MOVE_H
#define _MOVE_H
class Move {
int x, y;
public:
Move(int initX = 0, int initY = 0) : x(initX), y(initY) {}
int getX() { return x; }
void setX(int newX) { x = newX; }
int getY() { return y; }
void setY(int newY) { y = newY; }
};
#endif
令我惊讶的是,编译器忽略了#ifndef
和之间的所有代码(我发誓我没有在其他任何地方定义),并且我有各种关于缺少定义的错误。我在想我做错了什么,但是当我尝试使用另一个键时(比如,一切都恢复正常了。在 C++ 中是否意味着一些特殊的东西?#endif
_MOVE_H
_MOVE_Ha
_MOVE_H
如果这很重要,我正在运行 Ubuntu 10.04、GCC 4.4.3。
谢谢,