0

デザインの質問があります。

私には3つの別々のクラス、つまりA、B、Cがあります。クラスAにはクラスBの配列オブジェクトがあり、クラスBにはクラスCのオブジェクトがあります。

ここで、クラスCのクラスAの関数にアクセスしたいと思います。

どうすればそれを達成できますか?

ここにいくつかのコードがあります:

ファイルclassA.h:

#pragma once
#include <classB.h>

class classA
{
    classB objB[10];
    void GetData();
};

ファイルclassB.h:

#pragma once
#include <classC.h>
class classB
{
    classC objC;
}

ファイルclassC.h:

#pragma once
#include <classA.h>
class classC
{
    classA objA;
}

上記のコードは、を追加しましたが、ループを作成します#pragma once。classA.hをclassC.cppに含めようとしましたが、それでもClassAの関数にアクセスできません。

どうもありがとう。

チンタン

4

3 に答える 3

3

@jogojapan が言ったように、これは循環依存の問題です。

クラス C でクラス A へのポインタ メンバを使用し、前方宣言を使用できます。

class classA;
class C{
    classA* objAPtr;
};

次に、 c.cpp に追加できます#include <classA.h>

于 2012-10-29T09:31:16.343 に答える
0

Class Aオブジェクトを使用してのメソッドを呼び出したい場合は、Class C継承を実装する必要はありません。オブジェクトを使用して のメソッドを呼び出したい場合は、継承Class AClass C's実装する必要があります。

于 2012-10-29T09:22:49.793 に答える
0

あなたが基本的に何を望んでいるのかわからない私はこれについて考えることができます:

クラス C でクラス A のオブジェクトを作成し、クラス C に存在するオブジェクトを使用してクラス A の関数にアクセスする

于 2012-10-29T09:15:26.070 に答える