2

問題の設定は次のとおりです。

  1. MainFile.cは、ファイルSubFileA.hおよびSubFileB.hを呼び出します
  2. SubFileA.hはクラスSigleClass.hを呼び出す必要があります
  3. SubFileB.hは、クラスSingleClass.hも呼び出す必要があります。

ファイルの内容は次のとおりです。

MainFile.hには、次の行が含まれています。

#include "SubFileA.h"
#include "SubFileB.h"
...



SubFileA.hには、次の行が含まれています。

#include "SingleClass.h"
...
void InsertPendingRejectedTrx(SingleClass oLogic);
...



SubFileB.hには、次の行が含まれています。

#include "SingleClass.h"
...
void InsertPendingRejectedTrx(SingleClass oAnotherLogic); //line 52
...



SingleClass.hファイルには、次の行が含まれています。

#ifndef SC_LOGIC
#define SC_LOGIC
...
[lots of codes]
...
#endif




エラーコードは次のとおりです。

SubFileB.h: At global scope:
SubFileB.h:52: error: âSingleClassâ has not been declared



コンパイルしようとすると、コンパイラがエラーを返します。SubFileBから、「SingleClass」が含まれていなかったとのことです。どうすればこの問題を解決できますか?
注:コードは以前から機能していますが、何らかの理由でSubFileB.hからSingleClassをインクルードすると、コンパイラーがエラーを返しました。

4

1 に答える 1

0

ヘッダー ファイルを一元化し、ヘッダー ファイルを作成し、指定されたファイルにヘッダー ファイルを含める必要があります。squid キャッシュ サーバーは同じアルゴリズムを使用します。もちろん、 #include ディレクティブを優先して使用する必要があります。

于 2012-07-28T20:38:41.200 に答える