Then main difference between forwarding declearion and including or putting class decleration.
This is a forwarding declearion
This is a class decleration
And this is a include !
#include <x.h> (usually x.h is used for class X)
When you put class decleration on top of your program (this is also done with preprocessor if you include x.h) you can instanciate object from that class. and CAN use its methods.
But When you use forward deleration you can only instantiate but you cannot use its methods until its complete decleration was seen by the compiler.