2011-11-04 71 views
0

我想要一個帶有值參數的模板,除了在運行時不知道該值。例如,實現整數模數n。下面是一些粗糙的C++僞代碼: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

除了在調用'zmodn'的構造函數之前完成計算之外,它看起來像一個「表達式模板」思想的開始。 – Flexo

+0

http://www.angelikalanger.com/Articles/Cuj/ExpressionTemplates/ExpressionTemplates.htm – Flexo

回答

0

以同樣的方式實例化一個模板給出了一個類,實例化它提供了一個「動態類」,其「實例」是類型zmodn的對象。

符合此描述的標準模式稱爲工廠。

0

是的,它被稱爲普通類。

模板是模板,因爲它們是「代碼模板」,它們只存在於編譯時。

相關問題