我刚刚开始学习 C++,很难理解头文件和源文件的概念,特别是我应该在哪里包含哪些文件。
假设我有类 A 和 B,它们的每个内容都分为头文件和源文件,并且我有一个要在其中使用这些类的文件。
├ A.h
├ A.cpp
├ B.h
├ B.cpp
└ Main.cpp
我需要在何处包含哪个文件,是否可以使用单个命令编译/链接所有文件?
最佳答案
Which file do I need to include where
#include
指令实际上是非常简单的预处理器指令,它只是将指定文件的内容添加到目标文件中。通常,您将函数声明保存在头文件中,并将所述函数的定义保存在相应的 cpp
中。文件,因此您至少希望将 header 包含在其中(在您的情况下 A.cpp
包括 A.h
和 B.cpp
包括 B.h
)。此外,您可以在使用 header 中声明的函数的任何文件中包含 header (例如,如果您在 A.h
中使用 B.h
和 Main.cpp
的声明,则也包含这些文件)。
附注但是,您可以在头文件中声明旁边定义所有内容,但正如我之前所说,预处理器不会做任何花哨的事情 - 它只是将包含的内容添加到目标文件中,而您通常不希望让所有定义就位,因为包含它的每个翻译单元都会一遍又一遍地重复相同的定义。
关于C++ 头文件和源文件 - 包含哪些内容以及按什么顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72472234/