Passing Object to function

johnwasser:
It also compiles if you change:

I wasn't aware that worked too. Does it implicitly declare 'class John;'?