我有一些英雄课程,从抽象类Warrior扩展:
enum Warrior_ID { Infantryman_ID=0, Archer_ID, Horseman_ID };
class Warrior
{
public:
virtual void info() = 0;
virtual ~Warrior() { }
static unique_ptr<Warrior> createWarrior( Warrior_ID id );
};
class Infantryman: public Warrior
{
public:
void info()
{
cout << "Infantryman" << endl;
}
};
class Archer: public Warrior
{
public:
void info()
{
cout << "Archer" << endl;
}
};
class Horseman: public Warrior
{
public:
void info()
{
cout << "Horseman" << endl;
}
};
Run Code Online (Sandbox Code Playgroud)
这是我的工厂方法,它返回特定的字符:
unique_ptr<Warrior> Warrior::createWarrior( Warrior_ID …Run Code Online (Sandbox Code Playgroud)