こんばんわ。VC++で幾度のファイルに分けていたら、クラスの多重定義らしきものがでてしま
います。同じクラスを定義された、a.h と b.h を c.h でinclude するとすでに定義さ
れてますよエラーがでてしまいます。そのクラスはa.hで定義して、b.hはa.hをインクルードし
てるのですが、それでもだめみたいです。a.hとb.hを一緒に定義できなくなりました。関
数のプロンプトの宣言らしきものはないでしょうか? いまだみたことがありません。それとも
なにかうまい管理方法とか.. どうかご教授お願いします。
用語が???
定義と宣言を混同していませんか?
//-----
class CMyClassA(){
int m_nID;
public:
CMyClassA();
~CMyClassA();
void incl();
int get();
}
とかいうのが、クラスの宣言。
//-----
CMyClassA::CMyClassA(){
m_nID = 0;
}
CMyClassA::~CMyClassA(){
}
void CMyClassA::incl(){
++m_nID;
}
int CMyClassA::get(){
return m_nID;
}
とかいうのが、クラスの定義(実装)。
//-----
通常は、
[a.h]
#ifndef my_a_h_defined
#define my_a_h_defined
//クラスの定義など
#endif
とかします。
通常、my_a_h_defined とかの名前は、UUID文字列を生成し、それを使用します。
が、個人で練習用であるなら、そこまでこだわる必要は無いでしょう。
UUIDについては、検索するなり、ご自分で調べてください。
あらら、書いているうちに先越されたみたい(^_^;)
なるほど!YuO さん RAPT さんほんとに素早い回答ありがとうございます!
#ifdef でいけます。ありがとうございました。
ああ、UUIDってGUIDのことかぁ。おっきなシステム構築するとき意外はつかわんだろうな。ひ
とつ勉強になりました。