Я читал в таких местах, как здесь, что вы должны включить файлы .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;
}
foop.h
#ifndef FOOP_H
#define FOOP_H
int foo(int a);
#endif
foop.cpp
int foo(int a){
return ++a;
}
работает, но если я заменю #include "foop.h"
на #include "foop.cpp"
, я получаю сообщение об ошибке (используя Dev С++ 4.9.9.2, Windows):
multiple definition of foo(int)
first defined here
Почему это?