1

假设我有一个 C++ 模板派生类,我想根据某些条件在运行时为其选择模板参数。就像是:

class Base {
  public:
    virtual void do_something() = 0;
};

template <typename T, typename U>
class Derived : public Base {
  public:
    virtual void do_something() { ... }
};

Base* obj;
if (... /* runtime conditon #1 */ )
  obj = new Derived<T1, U1>();
else if (... /* runtime condition #2 */ )
  obj = new Derived<T1, U2>();
...

obj->do_something();

我想泛指这种情况,但不知道如何称呼它。它有一些标准名称吗?它是某种设计模式或成语吗?

4

1 回答 1

1

这对我来说就像工厂模式,使用不同的模板实例化而不是单独的显式派生类,这可能更典型。

于 2013-07-24T16:41:49.827 回答