Il compilatore g ++ si lamenta con questo errore quando dichiaro un amico nel seguente modo:una chiave di classe deve essere dichiarata quando si dichiara un amico
friend MyClass;
invece di
friend class MyClass;
Perché dovrebbe l'classe parola chiave richiesta? (il compilatore Borland C++, BTW, non lo richiede)
Il compilatore non può semplicemente cercare MyClass nella tabella dei simboli e dire che è stato dichiarato come classe? (ovviamente sta facendo la ricerca comunque perché si lamenta quando MyClass non è dichiarato)
Non è come se stesse facendo una dichiarazione in avanti della classe: devo ancora aver dichiarato la classe sopra o almeno hanno inoltrato la dichiarazione.
Avrebbe senso per me (sarebbe grande realtà) se
friend class MyClass;
fa una dichiarazione anticipata, se necessario, altrimenti sembra proprio come il sale sintattico a me.
ho allegramente usando amico dichiarazioni senza la parola chiave classe o struct con nessuna lamentela compilatore per quasi 20 anni. È qualcosa di abbastanza nuovo?
20 anni! Devi aver lavorato con Bjorn. –
Ho usato C-Front quando frequentavo la scuola di specializzazione nel 1989. Ho usato principalmente Borland C++ dal 1991. –
@Martin: Bjorn ?! Lol. –