C++ 头文件 - 困惑!

标签 c++ header-files

game.h needs:
- packet.h
- socket.h

server.h needs:
- socket.h

socket.h needs:
- game.h

当我尝试将 socket.h 包含到 game.h 中时,问题就来了,因为 socket.h 已经包含了 game.h。我该如何解决这类问题?

最佳答案

通常的方法,在头文件中使用#ifdef 和#define

在 game.h 中:

#ifndef GAME_H
#define GAME_H

.. rest of your header file here

#endif

这样,内容会被多次读取,但只定义一次。

编辑:删除了每个评论标识符开头和结尾的下划线。

关于C++ 头文件 - 困惑!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/384431/

相关文章:

c - '_IO(...)' 在 Linux 的 C 头文件中意味着什么?

c++ - 构造函数中的段错误

c++ - 单例与静态成员

c++ - 如何将多页 Magick++ 图像转换为 QImage?

c++ - 名称查找不依赖于 VC++2008 Express 中的模板参数。这是一个错误吗?

c++ - 我的 CListCtrl 中的选定项目显示省略号,尽管有足够的空间!

c++ - 如何找到从哪里导入 C++ 程序中的特定函数?

c++ - 现代 C/C++ 编译器能否更好地优化 header 中的代码?

c++ - 使用 std::vector 迭代器分配 std::string 会在一个项目中导致调试错误,但在另一个项目中有效?

c - 为什么crc32值需要-lz