假设我有三个类,一个称为字符,一个ork和一个人类。 人类和ork都来自角色。 是否有创建一个字符类型的函数,并且该函数内部能够返回从ork或人类创建的对象。或者,也许有另一种方式来返回来自同一功能的ork或人类对象。从基类型的函数返回派生类对象
编辑:没想到人们,当我尝试这个早期我意外派生ork和来自不同类别的人。实际上可以从基类型的函数中返回派生类。 只是要清楚这是我在做什么。
character game::getPlayer(char symbol) { switch (symbol) { case 'E': return elfPlayer; break; case 'G': return guardPlayer; break; case 'K': return knightPlayer; break; case 'R': return roguePlayer; break; case 'W': return wizardPlayer; break; } }
查找工厂模式。 –
要使多态性和继承真正起作用,您需要使用引用或指针。如果你有一个需要创建一个子类的函数,它应该返回一个指向基类的指针。 –
@MikeMB:“你不能”是错误的。 –