Вы в принципе не можете использовать объект, который ещё не был определен, поскольку компилятор не сможет построить объект, не зная его размеров.
Но вы всегда можете использовать указатель на объект, потому что все указатели в сях весят одинакого:
C++ |
1
2
3
4
5
| class B;
class A{
B* b;
}; |
|
Я настоятельно рекомендую вам ознакомится с материалами "идиома pImpl"
Например, вот здесь:
http://habrahabr.ru/blogs/refactoring/111602/