假設我有一個具有某個模板類型的成員變量的對象。所以,在類的聲明,就不會有這樣的事情:爲什麼模板類型的初始化需要重複變量的類型?
// This is just the declaration of bar which is a member of some class.
templatizedType<Foo> bar;
現在,當我想初始化bar
爲什麼我要做
// This is the initialization. Note that I am assuming that templatizedType has a
// constructor that takes an argument of type T*. Presumably, this is happening
// somewhere inside whatever class has declared bar as a member.
templatizedType<Foo> bar(new Foo());
,而不是簡單地
bar(new Foo());
編輯(試圖澄清):從本質上講,在我看來,酒吧的類型(包括參數化類型)已經在它的聲明中作爲類的成員進行了拼寫因此在初始化時不需要重複。
如果這一切都沒有意義,讓我知道(我發現這主要是通過反覆試驗和對IRC有幫助的人,所以如果我對這裏發生的事情的理解是錯誤的,那麼幫助也會不勝感激。)
是「酒吧」的一類或哪方面你一個成員變量申報和使用吧? – 2009-11-02 19:54:47
這絕對是錯的 - 你不應該重複變量聲明。粘貼一個完整的樣本。 – 2009-11-02 19:54:55
你的意思是在這裏說'TemplatizedType'有一個構造函數,它把'T *'作爲參數,並且你想從參數中推導出'T'來傳遞給構造函數? –
2009-11-02 20:01:12