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??

War es hilfreich?

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
scroll top