宣言を別のヘッダーのファイルに転送することはできますか?例えば:別のファイルの前方宣言C++
#ifndef _MAIN_H_
#define _MAIN_H_
class ClassA;
class ClassB;
#include "classa.h"
#include "classb.h"
#endif
#ifndef _CLASSA_H_
#define _CLASSA_H_
#include "main.h"
class ClassA
{
public:
ClassB b;
};
#endif
#ifndef _CLASSB_H_
#define _CLASSB_H_
#include "main.h"
class ClassB
{
public:
ClassA a;
};
#endif
クラスAとクラスBの両方がお互いに依存し、その両方は、他のタイプのオブジェクトを持っています。私がしたことは、両方のクラスが別のファイルで宣言されたことでした。これを行うためのきれいな方法がありますか?
サイクルを中断する必要があります。あなたがAのインスタンスを作成しようとした場合に起こることを考えてみてください。(Aを作成し、Bを作成し、Aを作成する必要があり、Bを作成する必要があります...) – Mat
それはカップリングです。ではない?なぜお互いの定義が必要なのですか?具体的な例?それらの機能が似ている場合、それらをサブクラスにすることはできますか? – CppLearner
@CppLearner "なぜお互いの定義が必要ですか?"私の間違い – user52343