El compilador g ++ se queja con este error cuando se declaro un amigo de esta manera:una clave de clase debe ser declarado cuando se declara un amigo
friend MyClass;
en lugar de
friend class MyClass;
¿Por qué la clase palabra clave se requiere? (el compilador de Borland C++, BTW, no lo requiere).
¿No pudo el compilador simplemente buscar MyClass en la tabla de símbolos y decir que se declaró como una clase? (Obviamente está haciendo la búsqueda de todos modos porque se queja cuando MyClass no se ha declarado)
No es como si estuviera haciendo una declaración directa de la clase: todavía tengo que haber declarado la clase anterior o al menos lo han declarado adelante.
No tendría sentido para mí (en realidad sería grande) si
friend class MyClass;
hace una declaración hacia adelante si es necesario, de lo contrario sólo parece que la sal sintáctica para mí.
He estado usando alegremente amigo declaraciones sin la palabra clave clase o estructura con ninguna queja del compilador desde hace casi 20 años. ¿Es esto algo bastante nuevo?
20 años! Debes haber estado trabajando con Bjorn. –
Utilicé C-Front cuando estaba en la escuela de posgrado alrededor de 1989. He usado principalmente Borland C++ desde 1991. –
@Martin: Bjorn ?! Lol. –