重複の可能性:
前方宣言エラーによる循環依存
構造体 (ここではポート) を定義するファイルと、クラス (ここではデバイス) を定義するファイルの 2 つのファイルがあります。クラスはこれらの構造体をポートとして使用するため、できればポインターによってクラスにリンクする必要があります。しかし、デバイス クラスが定義されていない場合、このポインターを作成するにはどうすればよいでしょうか。
これは大まかにコードを次のようにしたいものです...
backbone.h:
typedef struct aPort {
std::string portName;
Device *ptrDeviceThatOwnsPort;
} port;
device.h:
#include "backbone.h"
class Device {
}
...しかし、これは明らかに backbone.h でDevice has not been definedというエラーをスローします。バックボーン ヘッダー ファイルの typedef の前にデバイス ヘッダーを単純にインクルードしようとしましたが、各ヘッダーが別のヘッダーに依存しているため、うまくいきませんでした。私がどこかで読んだところによると、Objectve-C には「先行クラス定義」などの行に沿ったものがあるので (かなり長い間 Obj-C でコーディングしていません)、C++ に似たようなものはありますか? または、私の問題に対するさらに良い解決策はありますか?
どんな助けでも大歓迎です。事前に感謝します。