あとはまあ
前方宣言で足りるのは
メンバ関数の引数の型としてfoo型を使用する場合
や
typedefとかかな。
 > さて、その別クラスの名前が、名前空間 bar の下にあるとき、
 > namespace bar { class foo; }; と記述していたんですが、一般的にこの書き方で良いのでしょうか?
それでいいと思いますが。
class bar::foo;とか書いても無理ですし、それ以外記述できないですよねぇ?

もし有識者がいらしたらそっちを信用してください。