たとえば、クラスAにはクラスBのメンバーがあります。一般に、コンパイルの依存関係を最小限に抑えるために、クラスAにはBのポインタを組み込み、クラスAの宣言のB。次のようになります。C++でtypedefクラスをあらかじめ宣言する方法
//B.h
class B
{
....
};
//A.h
class B;
class A
{
B*b;
A();
...
};
//A.cpp
#include "B.h"
A::A()
{
b=new B();
...
};
しかし、今、私は疑問を持っている:Bのクラスは、次のようにのtypedef を使用して定義されている場合:
typedef class
{
....
}B;
前の事前宣言されたメソッドは、この中には動作しません。場合。 A.hでクラスBを事前に宣言する必要がありますか?
'typedef class B foo;'そしてあなたのクラスを普通に宣言しただけです。そのようなクラスをtypedefするためのポイントは何ですか?あなたのクラスはtypedefを必要としません。ところで、あなたが円を持っていない場合は、AヘッダーにBヘッダーを含めてください。 – Stargateur
@Stargateur 'class B'と' B'はこのケースでは異なります –
私は他の人がwritedクラスを使うかもしれないので、私はこの質問をします。彼らはtypedefを使ってクラスを宣言します。私は元のファイルを変更したくありません。だから私はこの問題を解決する方法があるかどうかを知りたい。 – KevinZhu