2015-02-10 118 views
0

我有一個班級,其成員是另一個模板化班級的成員。班級成員:模板化班級向量

我在classA.h代碼看起來是這樣的:「多模板參數列表不準」

template <typename T> vector<classB<T> > 

我得到的錯誤,如「沒有合適的默認構造函數可用」 和 我以前在classB中沒有錯誤,直到我將此行添加到classA。

我沒有很多使用模板的經驗,也不知道它爲什麼不編譯,或者語法應該是什麼。 this question似乎有幫助,但答案太簡單,我完全理解。如答案所示,是否真的有必要創建一個基類並從中派生出來? A類是否也需要模板化,因爲它具有此矢量成員?

發生了什麼事?

非常感謝任何幫助

+0

這需要更多上下文。請顯示'A'的定義。 – Pradhan 2015-02-10 21:27:41

回答

0

你實際上是在指定的剪切片段中聲明一個模板。如果這是班級的成員,則該班級必須是模板並在成員中傳播類型信息,例如

template <typename T> 
class Test { 
    vector<MyClass<T>> _vector; 
} 
+0

哦,這是一個問題。這是一個Qt項目,並且ClassA是MainWindow類的成員。 但是,如果ClassA必須被模板化,那麼MainWindow也是如此 - 但是當用戶輸入一些參數並單擊一個按鈕來創建這些對象時,類A和它的成員,classB的向量將從用戶輸入中獲取它們的類型。 看起來我應該放棄模板化或重新設計班級關係。 – BenK 2015-02-11 01:14:30