-1
class A;
class B;
class A
{
public:
A(B * b) : b(b)
{
b->foo(this);
}
private:
B * b;
};
class B
{
public:
void foo(A *)
{}
};
使用してクラスを作るためにどのように私にこのコードをコンパイル互いに
incomplete-type.hpp: In constructor ‘A::A(B*)’:
incomplete-type.hpp:9:4: error: invalid use of incomplete type ‘class B’
b->foo(this);
^~
を与えるしかし、私は本当にポインタを介して相互に使用するクラスが必要です。これどうやってするの?
クラス定義の外で、両方のクラスが定義された後にコンストラクタを定義します。 – wally