Класс-форвард обычно используется в заголовочном файле. Например:
// Class2.h
class Class1;
class Class2
{
Class1* m_class1; // Using Class1 type
};
Это позволяет Class2.h использовать Class1 без необходимости включать Class1.h в свой заголовочный файл. Конечно, любой файл .cpp, который включает Class2.h, должен также включать Class1.h.
Просто помните, что вы можете объявлять типы в нескольких модулях, но вы можете определять типы только в одном из них.