estoy haciendo un simple juego de consola en C++miembros de la clase Acceso a los derivados con un puntero de clase base
me gustaría saber si puedo acceder a los miembros de la clase 'entPlayer' durante el uso de un puntero que apunta a la clase base ('Entity'):
class Entity {
public:
void setId(int id) { Id = id; }
int getId() { return Id; }
protected:
int Id;
};
class entPlayer : public Entity {
string Name;
public:
void setName(string name) { Name = name; }
string getName() { return Name; }
};
Entity *createEntity(string Type) {
Entity *Ent = NULL;
if (Type == "player") {
Ent = new entPlayer;
}
return Ent;
}
void main() {
Entity *ply = createEntity("player");
ply->setName("Test");
ply->setId(1);
cout << ply->getName() << endl;
cout << ply->getId() << endl;
delete ply;
}
¿Cómo podría llamar a ply-> setName, etc.?
O
Si no es posible, de esa manera, lo que sería una manera mejor?
Disculpa, tuve que editar el formato de tu código. ¡Las líneas en blanco hicieron tu código realmente alto! Otro pequeño comentario sobre tu código: sigue una convención de nombres consistente, p. AllClassNamesLikeThis, y parameter_names_like_this. Otra queja: te patearás en el trasero más tarde con abreviaturas como "ent". Honestamente, no puedo decir qué se supone que entPlayer es. Creo que lo que quieres decir es solo "Jugador", o si te sientes prolijo "PlayerEntity". – allyourcode