General.h の内部
#ifndef GENERAL
#define GENERAL
namespace counternamespace{
int upperbound;
int lowerbound;
}
#endif
Analyzer.h の内部
#ifndef ANALYZER
#define ANALYZER
#include"General.h"
class Analyzer
{
public :
int var ;
int func();
};
#endif
Test.h の内部
#ifndef TEST
#define TEST
#include"Analyzer.h" //Error
class Test2
{
public:
Test2(void);
public:
~Test2(void);
};
#endif
上記のコードでは、Analyzer を追加しない場合、Test.h
すべて正常に動作しています。しかし、追加した後、次のリンカーエラーが表示されます。
1>Test2.obj : error LNK2005: "int counternamespace::lowerbound" (?lowerbound@counternamespace@@3HA) already defined in Analyzer.obj
2>Test2.obj : error LNK2005: "int counternamespace::upperbound" (?upperbound@counternamespace@@3HA) already defined in Analyzer.obj
#ifndef
/を追加しました#endif
。次に、どこで間違いを犯していますか?誰でも私に知らせてもらえますか?