ForwardDeclarations
ForwardDeclarations are declarations of a name without providing its full definition, allowing a compiler to recognize the existence of a type or a function before the complete definition is seen. They enable references to a symbol to be written in code that otherwise does not need the full details, improving modularity and compile times.
In languages like C and C++, forward declarations come in two main forms. For types, you may
Common uses include reducing header dependencies and breaking circular dependencies between modules. By forward-declaring a type
Limitations and caveats include the inability to instantiate incomplete types or access their members, and constraints