我正在使用C++制作一个简单的控制台游戏。
我想知道在使用指向基类(“Entity”)的指针时,是否可以访问“entPlayer”类的成员:
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;
}
我该如何调用ply->setName等方法?
或者
如果这种方式不可行,有更好的方法吗?