hereのような場所では、.hファイルと.cppファイルを含める必要があります。そうしないと、エラーが発生するためです。ですから、例えば.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.cpp"
で#include "foop.h"
を交換する場合、私はエラーを取得します(Dev C++ 4.9.9.2、Windowsを使用):
multiple definition of foo(int)
first defined here
なぜですか?
この例は、うまくコンパイルする必要があります。不足している詳細はありますか? –
あなたは.cppだけを含んでいますか?それはこの単純な場合に許されるべきです。 .hと.cppの両方を含むobvisoulyは関数を定義します –