Freundesklasse geht es nicht gut mit mir?
-
26-10-2019 - |
Frage
Ich versuche damit umzugehen friend class
zum ersten Mal. Ich habe den Code unten geschrieben:
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;
};
Der Compiler sagt mir, dass ich nicht tun kann root.x=3;
, Was ist das Problem??
Lösung
Das Problem ist, dass Sie versuchen, eine Erklärung an einem Ort auszuführen, an dem der Compiler die Mitgliedererklärungen erwartet. Versuchen Sie, es in eine Methode zu setzen
class Type : public Kind {
...
void Example() {
Kind root;
root.x = 3;
}
};
Andere Tipps
Sie können die Aufgabe nicht als Teil der Klassenerklärung erledigen. Tun Sie es stattdessen in einer Mitgliedsfunktion.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow