class宣言

class B;
class A {
	B *b;
};
class B {
};

今まで上のやり方でやってたけど、下のやり方でも可能。

class A {
	class B *b;
};
class B {
};

class Bがnamespaceを使っているときはうまくいかない。どうやればいいのだろう。

// これはエラー
class A {
	class bb::B *b;
};
namespace bb {
class B {
};
};

結局こんな感じでやればいいということだろう。

namespace bb { class B; }
namespace xx { template class X; }
class A {
  public:
	bb::B *b;
	xx::X *x;
	class C *c;
};
/////////////////////////////
namespace bb {
	class B {
	};
}
namespace xx{
	template class X {
	  T t;
	};
}
class C {
};