0

ファイルを相互にリンクする際に問題があります。私が使用しているクラスがあります:

ファイル Ah のクラス A のヘッダー

class A
{
public:
    B someVariable;    //there is class B used!!
    int number;
};

ファイル Bh のクラス B のヘッダー

class B
{
public:
    void someMethod();  
};

Bの実装

B::someMethod()
{
    cout << "Value is:" << globalInstanceOfA.number << "\n";
}

そして、別のファイルで、プログラム全体で使用するグローバル変数 globalInstanceOfA を宣言する必要があります...

しかし、include や extern などをどこに置くかがわかりません。私はそのようなことを試しました:

#include "A.h"
#include "B.h"

extern A globalInstanceOfA;

誰かが私を助けることができますか?

4

1 に答える 1

1

この線

extern A globalInstanceOfA;

変数を使用するために含める必要があるヘッダー ファイルに入りますglobalInstanceOfA。これにより、グローバル変数の宣言が提供されます。

この線

A globalInstanceOfA;

グローバル変数の定義を提供するために、任意の cpp ファイルに入ります。プログラム内のすべての cpp ファイル間で定義が 1 つだけ存在する必要があります。

于 2012-11-25T13:19:30.320 に答える