0

Ah で定義された構造体を、メソッドのパラメーターとしても、Bh の別の構造体へのデータ要素としても使用する必要があります (StructB で StructA へのポインターを使用することはできません。ポインターが指すデータが最終的に変更されるためです。元のデータを StructB のローカル コピーに保存する必要があります。)

あ:

struct StructA {
...
}

Bh

#include "A.h" 
struct StructA;

class B {
  method foo (StructA &structA);
  struct StructB {
     ...
     StructA structA
  }

Ah を Bh に含めることで、StructA の宣言を Bh で使用できるようになりませんか? ただし、コンパイラは「フィールド structA の型が不完全です」と不平を言います。

StructA を前方宣言しないと、コンパイラは、StructA がメソッド foo で宣言されていないと不平を言います。したがって、明らかに、宣言は Bh では使用できません。

ここで何か基本的なことが欠けていますが、それを理解することができず、気が狂ってしまいます! 助けてください!

4

1 に答える 1

0

#include "A.h"確かB.hに完全なタイプを提供します、私の推測では、循環インクルードがあるため、機能しません。A.h含むかB.h(直接または含まない)?

于 2013-10-25T07:44:27.267 に答える