小编Dsd*_*dsd的帖子

如何从工厂方法返回unique_ptr?

我有一些英雄课程,从抽象类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)

c++ factory

1
推荐指数
1
解决办法
1087
查看次数

标签 统计

c++ ×1

factory ×1