Forward declaration is not really a new concept. It was already present in the original Wirth Pascal where it allowed the programmer to do one thing and one thing only – call procedure A from procedure B and procedure B from procedure A. Remember – in ye olde times of good old Pascal we had no interfaces, no classes, no units … just procedures and functions.
Because the code tells more than thousand words, here’s an example (still perfectly valid in modern Object Pascal).
procedure ProcA; forward; procedure ProcB; begin ProcA; end; procedure ProcA; begin ProcB; end;