Trouble with Forward Declarations

That particular case is using a forward declaration to avoid having to include the header for that type.

This Stack Overflow answer gives a good summary of when you can and can’t use a forward declaration: c++ - When can I use a forward declaration? - Stack Overflow