//ab.h
class a{
}
};
class b{
public:
void bbb(a &ob);
};


//b.cpp
#include "ab,h"
void b:bbb(a &ob){
}

class aとclass bの宣言位置を入れ替えると互換性がなくなるというエラーがでるのですがこういうのはどうすればいいんでしょうか?
ヘッダファイルの使い方がそもそも違うのでしょうか?