クラスaをmain.cppから分離したいとき、
ヘッダファイルa.hひとつで
class a{
void hoge(){
return 0;
}
};
という感じで定義も記述して、a.cppファイルを作らないのってよくないんでしょうか?
修正があったときhファイルとcppファイルをいじらなきゃならないのが嫌なので…。

今ぶちあたってる問題として、お互いのstaticなメンバ関数を
お互いが使うような二つのクラスがあるときは宣言と定義を分けないとどうしようもないようなのですが。