classe ami ne fait pas bien avec moi?
-
26-10-2019 - |
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 ??
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