CからC++への勉強を進めている段階で、クラスの分割コンパイルについて不明な点があるので質問させていただきます。
試しに次のようなプログラムを書いてみました。
//main.cpp
#include "stdafx.h"
#include"class.h"
int _tmain(int argc, _TCHAR* argv[])
{
test a;
a.show();
return 0;
}
//class.h
class test{
int a;
int b;
public:
test();
int show();
};
test::test(){
a = 10;
b = 20;
};
int test::show(){
printf("a = %d,b = %d",a,b);
return 0;
}
更に、もう一つ.cppファイルを増やして、そこにclass.hをインクルードし、コンパイルした際に
1>test2.obj : error LNK2005: "public: __thiscall test::test(void)" (??0test@@QAE@XZ) は既に クラスの分割.obj で定義されています。
1>test2.obj : error LNK2005: "public: int __thiscall test::show(void)" (?show@test@@QAEHXZ) は既に クラスの分割.obj で定義されています。
1>D:\Windowsプログラミング\クラスの分割\Debug\クラスの分割.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
多重定義のエラーが出てしまいます。
どこのcppファイルからもクラスを参照できるようにするにはどの様にしたらいいのでしょうか。
勉強を始めたばかりでトンチンカンなことをたずねているかも知れませんが、よろしくお願いします。