问题描述
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。
解决方法
我可以包含一个cpp文件
理论上,任何文件都可以包含在内。
但是,按照惯例,您永远不应包含cpp文件。
但是提交系统只允许我使用:
g++ main.cpp -o xxxx
如果无法编译A.cpp,则根本不要编写此类文件。将您将用A.cpp编写的定义写到main.cpp中。这样可以实现与包含宏相同的功能,但是在另一个cpp文件中不会有重复的定义。
,您可以#include
所需的任何文件。 #include
是自动复制粘贴。它会在您要求包含的文件中查找,并读取文件中的所有内容,并假装您是在原始文件中编写的。它不在乎文件中的内容,它只是这样做。您可以包含.h
文件,.hpp
文件,.cpp
文件,.txt
文件,.py
文件,.jpg
文件或任何您想要的东西,只要其中包含有效的C ++代码即可。
请注意,包含.cpp
文件与分别编译不同。人们期望.cpp
文件是单独编译的,不包含在内。为避免混淆其他程序员或您自己的将来版本,如果要包含文件,应应重命名为其他文件。您不必一定要,但是应该。如果它也不是普通的头文件(因为不能多次包含它),则可以组成一些完全不同的扩展名,例如.inc
。