出现hpp时,是否可以在主文件中包含cpp文件?

时间:2020-09-15 13:37:44

标签: c++ include main

例如: 我有一个叫做A的班级。有:

A.hpp
A.cpp
main.cpp

针对我的项目

默认情况下,我只需要在主文件中包含A.hpp即可使用Xcode之类的IDE或使用以下命令进行编译:

g++ main.cpp A.cpp -o xxxxx

但是提交系统只允许我使用:

g++ main.cpp -o xxxx

我试图将A.cpp包含在主文件中,但IDE表示:构建前导时不能递归包含主文件

有什么解决办法吗?我想分开存放我的hpp和cpp。

2 个答案:

答案 0 :(得分:2)

我可以包含一个cpp文件

理论上,任何文件都可以包含在内。

但是,按照惯例,您永远不应包含cpp文件。

但是提交系统只允许我使用:

g++ main.cpp -o xxxx

如果无法编译A.cpp,则根本不要编写此类文件。将您将用A.cpp编写的定义写到main.cpp中。这样可以实现与包含宏相同的功能,但是在另一个cpp文件中不会有重复的定义。

答案 1 :(得分:1)

您可以#include所需的任何文件。 #include是自动复制粘贴。它会在您要求包含的文件中查找,并读取文件中的所有内容,并假装您是在原始文件中编写的。它不在乎文件中的内容,它只是这样做。您可以包含.h文件,.hpp文件,.cpp文件,.txt文件,.py文件,.jpg文件或任何您想要的东西,只要其中包含有效的C ++代码即可。

请注意,包含.cpp文件与分别编译不同。人们期望.cpp文件是单独编译的,不包含在内。为避免混淆其他程序员或您自己的将来版本,如果要包含文件,应重命名为其他文件。您不必一定要,但是应该。如果它也不是普通的头文件(因为不能多次包含它),则可以组成一些完全不同的扩展名,例如.inc