我曾经在像 给你这样的地方读到过,你必须包括。H 文件而不是。Cpp 文件,否则将得到一个错误。举个例子
Main.cpp
#include <iostream>
#include "foop.h"
int main(int argc, char *argv[])
{
int x=42;
std::cout << x <<std::endl;
std::cout << foo(x) << std::endl;
return 0;
}
呸
#ifndef FOOP_H
#define FOOP_H
int foo(int a);
#endif
Foop.cpp
int foo(int a){
return ++a;
}
可以工作,但是如果我用 #include "foop.cpp"替换 #include "foop.h",我会得到一个错误(使用 Dev C + + 4.9.9.2,Windows) :
multiple definition of foo(int)
first defined here
为什么会这样?