機能的に同一のヘッダーファイルが2つあり、そのうちの1つは認識できる理由もなくエラーを生成します。新しい(壊れた)ファイルを作成する際に何か間違ったことをしたに違いありませんが、何がわからないのです。
私のIDEはXcodeです。プロジェクトはAppleLLVMコンパイラ4.1を使用してObjectiveC++用にコンパイルされていますが、問題のコードのセクションはすべて純粋なC ++であり、ObjectiveCではありません。
ここにいくつかのコードがあります:
NamespaceA.Common.h
#include "../NamespaceB/Common.h"
#include "WorkingClass.h"
#include "BrokenClass.h"
...
../NamespaceB/Common.h
#ifndef NamespaceBCommon
#define NamespaceBCommon
namespace NamespaceB
{
...
}
...
#include "Superclass.h"
...
WorkingClass.h
#ifndef NamespaceA_WorkingClass
#define NamespaceA_WorkingClass
namespace NamespaceA
{
class WorkingClass : public NamespaceB::Superclass
{
public:
WorkingClass();
~WorkingClass();
};
}
#endif
BrokenClass.h
#ifndef NamespaceA_BrokenClass
#define NamespaceA_BrokenClass
// If I don't have this line I get errors. Why?? !!!!!
// This file is exactly identical to WorkingClass.h
// as far as I can tell!
//#include NamespaceA.Common.h
namespace NamespaceA
{
// Parse Issue: Expected class name !!!!!
// Semantic Issue: Use of undeclared identifier 'NamespaceB'
class BrokenClass : public NamespaceB::Superclass
{
public:
BrokenClass();
~BrokenClass();
};
}
#endif
ありがとうございました。