C++ 项目的头文件应该是什么样子的?
How should header file look like for C++ projects?
我学过C,现在我决定转学C++。
因此,在 C 语言中,我在头文件中使用了 #ifndef
#endif
。我应该在 C++ 中使用相同的命令吗?或者有其他选择吗?
是的,预处理器(大部分)以相同的方式工作,因此您仍应使用预处理器指令来防止多次包含相同的代码。
C 和 C++ 预处理器之间的任何功能差异都可能是边缘情况,不太可能与您当前的学习水平相关。
file/header 关系在 C 和 C++ 中是相同的。
foo.h:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
与对应的 C 语言相比,C++ 预处理器本质上是一样的。所有指令都可以在任一语言中使用,无论是写在头文件 (.h) 中还是源文件(.c、.cc、.cpp)中。
Commader_Quazar的回答是正确的。
或者您可以替代:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
与:
#pragma once
// your declarations (and certain types of definitions) here
这让您可以编写 1 行代码而不是 3 行,并且不易出错(因为在这种情况下您不必担心记得将 #endif
放在文件末尾)不过我个人更喜欢第一个选项。
我学过C,现在我决定转学C++。
因此,在 C 语言中,我在头文件中使用了 #ifndef
#endif
。我应该在 C++ 中使用相同的命令吗?或者有其他选择吗?
是的,预处理器(大部分)以相同的方式工作,因此您仍应使用预处理器指令来防止多次包含相同的代码。
C 和 C++ 预处理器之间的任何功能差异都可能是边缘情况,不太可能与您当前的学习水平相关。
file/header 关系在 C 和 C++ 中是相同的。
foo.h:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
与对应的 C 语言相比,C++ 预处理器本质上是一样的。所有指令都可以在任一语言中使用,无论是写在头文件 (.h) 中还是源文件(.c、.cc、.cpp)中。
Commader_Quazar的回答是正确的。
或者您可以替代:
#ifndef SOME_UNIQUE_NAME_HERE
#define SOME_UNIQUE_NAME_HERE
// your declarations (and certain types of definitions) here
#endif
与:
#pragma once
// your declarations (and certain types of definitions) here
这让您可以编写 1 行代码而不是 3 行,并且不易出错(因为在这种情况下您不必担心记得将 #endif
放在文件末尾)不过我个人更喜欢第一个选项。