class A{};

namespace N
{
class B{
friend class A;
int i;
};

class A{
A(){b.i = 0;}
B b;
};
};

これをコンパイルできるようにするにはどうすればいいですか?

・クラスAを名前空間Nの下に書く
・名前空間NのクラスAを別の名前にする
・最初のクラスAを別の名前にする

これ以外でできますか?