次のように、2 つの異なるインクルード ファイルからの再定義を避けたいと思います。
ファイルABC.h
extern int v=1;
ファイルfoo.h
#include "ABC.h"
class Foo
#ifdef BLA
: public ABC
#endif
{
...
};
ファイルbar.h
extern int v=3;
主要:
#define BLA
#include <foo.h>
#include <bar.h>
基本的foo
に私が書いたクラスでbar
、サードパーティのライブラリです。しかし、うまくいかないようです。どうすれば問題を解決できますか?
申し訳ありませんが、説明するのが少し難しいです。競合する部分は実際には変数ではなく#define
、コードの大きなブロックにラップされているようなものなので、この例はちょっと悪いです (エラーメッセージは「`__vector_17' の複数の定義」)。名前空間を使用せずに解決する方法はありますか?