gpt4 book ai didi

c++ - 在 C++ 中, "_MOVE_H"有什么特别之处?

转载 作者:可可西里 更新时间:2023-11-01 18:04:13 24 4
gpt4 key购买 nike

我有这样一个 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#endif 之间的所有代码都被编译器忽略了(我发誓我没有定义_MOVE_H 其他任何地方),我有各种关于缺少定义的错误。我在想我做错了什么,但是当我尝试使用另一个键(比如 _MOVE_Ha)时,一切都恢复正常了。_MOVE_H 在 C++ 中意味着什么特殊的东西吗?

如果重要的话,我正在运行 Ubuntu 10.04、GCC 4.4.3。

谢谢,

最佳答案

只需在您机器上的/usr/include/c++ 中运行 grep _MOVE_H

对我来说:

c++/4.5.0/bits/move.h:#ifndef _MOVE_H

根据经验,不要使用以___ 为前缀的东西(实际上是任何东西)。它保留供内部使用。使用 SOMETHING_MOVE_H(通常是公司名称,...)。

我猜这是一个新的头文件,用于将移动语义添加到 c++0x。

关于c++ - 在 C++ 中, "_MOVE_H"有什么特别之处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3345159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com