amico di classe non fa bene con me?
-
26-10-2019 - |
Domanda
sto cercando di fare con friend class
per la prima volta. Ho scritto il codice qui sotto:
class Kind{
private:
friend class Type;
int x;
public:
Kind(){ x=0; }
void setX(int X) { x =X; }
int getX() { return x; }
};
class Type: public Kind {
public:
friend class Kind;
Type(){ }
Kind root;
root.x=3;
};
Il compilatore mi dice che non posso fare root.x=3;
, qual è il problema ??
Soluzione
Il problema è il tentativo di eseguire un'istruzione in un luogo in cui il compilatore si aspetta dichiarazioni di membro. Prova a mettere in un metodo
class Type : public Kind {
...
void Example() {
Kind root;
root.x = 3;
}
};
Altri suggerimenti
Non si può fare l'assegnazione come parte della dichiarazione di classe. Farlo in una funzione membro, invece.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow