идиома "динамический шаблон" в C ++, есть ли стандартное имя для этого? - PullRequest
0 голосов
/ 04 ноября 2011

Я хочу шаблон с параметром значения, за исключением того, что значение не известно во время выполнения.Например, реализация целых чисел по модулю некоторого числа n.Вот некоторый грубый псевдокод C ++:

class zmodn
{
  int v; // the value, 0 <= v < n, n below
  zmodn (int v_) : v(v_) { }
  bool operator == (const zmodn &b) const { return v == b.v; }
  ...
};

class zmodn_dyntmpl
{
  int n;
  zmodn_dyntmpl (int n_) : n(n_) { }

  zmodn create (int v_) { return new zmodn (v % n); }
  zmodn add (zmodn a, zmodn b) { return zmodn ((a.v + b.v) % n); }
  ...
};

Здесь класс zmodn_dyntmpl в основном представляет динамический или динамический шаблон.Точно так же создание экземпляра шаблона дает класс, создание экземпляра дает «динамический класс», чьи «экземпляры» являются объектами типа zmodn.

Мой вопрос: есть ли стандартное имя для этой идиомы?Какое собственное имя для класса, представляющего динамический шаблон и его экземпляры?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2011

Да, он называется нормальным классом.

Шаблоны - это шаблоны, потому что они являются "шаблонами кода", они существуют только во время компиляции.

0 голосов
/ 04 ноября 2011

Точно так же создание экземпляра шаблона дает класс, создание экземпляра дает «динамический класс», чьи «экземпляры» являются объектами типа zmodn.

Стандартный шаблон, который соответствует этому описанию, называется Factory.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...