Question

Je suis en train de traiter friend class pour la première fois. J'ai écrit le code ci-dessous:

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;

};

Le compilateur me dit que je ne peux pas root.x=3;, quel est le problème ??

Était-ce utile?

La solution

Le problème est que vous essayez d'exécuter une instruction dans un endroit où le compilateur attend des déclarations de membres. Essayez de le mettre dans une méthode

class Type : public Kind {
  ...
  void Example() {
    Kind root;
    root.x = 3;
  }
};

Autres conseils

Vous ne pouvez pas faire la mission dans le cadre de la déclaration de classe. Faites-en une fonction de membre à la place.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top