Ein Klassenschlüssel muss deklariert werden, wenn ein Freund deklariert wird

Den g++ - compiler beschwert sich mit diesem Fehler, wenn ich erkläre einem Freund folgendermaßen:

friend MyClass;

statt

friend class MyClass;

Warum sollte die Klasse Schlüsselwort erforderlich?
(Borland C++ - compiler, BTW, nicht benötigen.)

Konnte nicht der compiler einfach die look-up MyClass in der symbol-Tabelle und sagen, es wurde erklärt, wie eine Klasse? (es ist offensichtlich tut die Suche trotzdem, weil es meckert, wenn MyClass es nicht deklariert)

Es ist nicht wie es eine forward-Deklaration der Klasse: ich habe immer noch zu haben entweder die Klasse deklariert oben oder zumindest nach vorne erklärt er.

Es würde für mich Sinn machen (wäre ja eigentlich Klasse), wenn

friend class MyClass;

macht eine vorwärts-Deklaration, wenn nötig, sonst ist es nur scheint, wie syntaktische Salz zu mir.

Wurde ich munter mit Freund Aussagen ohne die Klasse oder struct keyword mit der kein compiler Beschwerden seit fast 20 Jahren.
Ist das etwas, was ziemlich neu?

Kommentar zu dem Problem - Öffnen
20 Jahren! Sie müssen die Zusammenarbeit mit Björn. Kommentarautor: Martin York
Ich benutzte C-Front, wenn ich war in Graduiertenschule über 1989. Ich habe hauptsächlich mit Borland C++ seit etwa 1991. Kommentarautor: Roger Nelson
@Martin: Bjorn?! Lol. Kommentarautor: Lightness Races in Orbit

InformationsquelleAutor der Frage Roger Nelson | 2009-03-18

Schreibe einen Kommentar