59

同じ .cpp ファイルに 2 つのクラスがあります。

// forward
class B;

class A {       
   void doSomething(B * b) {
      b->add();
   }
};

class B {
   void add() {
      ...
   }
};

転送が機能せず、コンパイルできません。

次のエラーが表示されます。

error: member access into incomplete type 'B'
note: forward declaration of 'B'

私はclangコンパイラ(clang-500.2.79)を使用しています。

複数のファイル (.cpp と .hh) を使用したくありません。1 つの .cpp だけでコーディングしたいと考えています。

クラスAの前にクラスBを書くことはできません。

私の問題を解決する方法を知っていますか?

4

2 に答える 2