C++ &引用;“动态模板”;C+中的成语+;,这个有标准的名字吗?
我想创建一个带有value参数的模板,但运行时该值未知。例如,实现对某个数n进行模化的整数。下面是一些粗糙的C++伪代码:C++ &引用;“动态模板”;C+中的成语+;,这个有标准的名字吗?,c++,oop,templates,C++,Oop,Templates,我想创建一个带有value参数的模板,但运行时该值未知。例如,实现对某个数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
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类
{
int v;//值为0
以同样的方式实例化模板会产生一个类,实例化它会产生一个“动态类”,其“实例”是zmodn类型的对象
符合此描述的标准模式称为工厂。是的,它被称为普通类
模板是模板,因为它们是“代码模板”,它们只存在于编译时。这看起来像是“表达式模板”思想的开端,除非您在调用zmodn
的构造函数之前进行了计算。