¿La clase de amigos no me funciona bien?
-
26-10-2019 - |
Pregunta
Estoy tratando de lidiar con friend class
por primera vez. Escribí el código a continuación:
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;
};
El compilador me dice que no puedo hacer root.x=3;
, ¿¿Cuál es el problema??
Solución
El problema es que está tratando de ejecutar una declaración en un lugar donde el compilador espera declaraciones de miembros. Intenta ponerlo en un método
class Type : public Kind {
...
void Example() {
Kind root;
root.x = 3;
}
};
Otros consejos
No puede hacer la tarea como parte de la declaración de clase. Hazlo en una función de miembro en su lugar.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow