我听说我们应该将声明写在头文件中,将定义写在源文件中,源文件和头文件名称相同。然后只需在源代码中包含标题。
这是一个例子myFile.h
:
void printer (void);
这是打印机的实现myFile.cpp
:
#include "myFile.h"
#include <iostream>
using namespace std;
void printer ()
{
cout<< "I am a printer";
}
这是我的main.cpp
:
#include "myFile.h"
int main ()
{
printer();
return 0;
}
现在,当我运行程序时,我得到了预期的错误:undefined reference to printer
. 但是当我在 github 或其他项目上看到代码时,我发现它们通常包含头文件而不是源文件。我也尝试使用标题保护ifndef
,但仍然出现同样的错误。如果满足以下条件,则成功编译主程序:
如果我在 myFile.h 中包含 myFIle.cpp
如果我只在 main 中包含 myFile.cpp
我在做同样的事情时一般的做法是什么?