2012-05-20 162 views
2

是否可以爲此數據類型編寫模板定義?遞歸模板

myclass<int, myclass<int> > data; 

第二個模板變量應該是可選的,其默認值爲相同類型。

澄清

現在我用這個定義:

class defaultClass { }; 
template <typename T, typename C=defaultClass> 
class myclass { ... }; 

我想預定義在defaultClassmyclass<T>

我想實現的東西,如自動實現的屬性:第二個參數應該是包裝變量被定義的上下文。如果上下文被忽略,它應該在由模板類本身創建的對象中。 (我知道它可以解決的另一種方式,這只是使用情況。)

+0

你可以給一個用例 –

+0

「同一類型的默認值」---哪個類型? –

+0

如果'defaultClass'是'myclass ',那隻能擴展到'myclass >>>>>' – kennytm

回答

2

看起來非常相似,

http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern

您可以通過一個類層次結構與模板的基本類型做你想做的事然後你的每個類都可以從該基類派生出來,如

template<class T> class base { ... }; 

class derived: public base<derived> {...}; 
+1

您可以在此處執行「模板」類myclass1:public myclass > {...}「。您必須「傳遞」模板參數以匹配類的定義。 –