une classe-clé doit être déclaré lors de la déclaration d'un ami

Le compilateur g++ se plaint avec cette erreur lorsque je déclare un ami ainsi:

friend MyClass;

au lieu de

friend class MyClass;

Pourquoi la classe mots clés sont-ils nécessaires?
(Borland C++ compilateur, d'ailleurs, n'en a pas besoin.)

Ne pouvais pas le compilateur simplement look-up MyClass dans la table de symboles et dire qu'il a été déclaré en tant que classe? (c'est évidemment de faire de la recherche car de toute façon on se plaint quand MyClass-il pas déclaré)

Ce n'est pas comme cela avant la déclaration de la classe: j'ai encore d'avoir déclaré la classe ci-dessus, ou au moins de l'avant, l'a déclaré.

Il serait logique pour moi (ce serait génial, en fait) si

friend class MyClass;

fait une déclaration anticipée si nécessaire, sinon, il semble juste comme syntaxiques de sel pour moi.

J'ai été joyeusement à l'aide de ami déclarations sans classe ou struct mot-clé sans compilateur plaintes depuis près de 20 ans.
Est-ce quelque chose de relativement nouveau?

  • 20 ans! Vous devez avoir travaillé avec Bjorn.
  • J'ai utilisé le C-Avant, quand j'ai été diplômé de l'école au sujet de 1989. J'ai utilisé principalement Borland C++ depuis 1991.
  • Bjorn?! Lol.
InformationsquelleAutor Roger Nelson | 2009-03-18