我有一個自制的數據結構(例如鏈接列表),但是當我創建該類時,我是基於字符串創建的,但現在我想要獲取該數據結構,並用它來保存另一個自制的數據類型。我知道這涉及到模板(能夠採用工作數據結構並將任何數據類型應用於它),但我沒有真正與它們合作。將非模板類轉換爲模板
我應該遵循什麼步驟將非模板類變成模板類?
我有一個自制的數據結構(例如鏈接列表),但是當我創建該類時,我是基於字符串創建的,但現在我想要獲取該數據結構,並用它來保存另一個自制的數據類型。我知道這涉及到模板(能夠採用工作數據結構並將任何數據類型應用於它),但我沒有真正與它們合作。將非模板類轉換爲模板
我應該遵循什麼步驟將非模板類變成模板類?
你需要做的就是把模板規範在前面的主要事情:
template <class T>
class A {
...
};
然後使用的T,而不是使用字符串類型。
創建模板時還有很多其他事情需要考慮,但這取決於特定的情況。
當你使用模板您將指定新的類型:
A<MyType> my_object;
是基本動作
template <class T>
)A::A(){}
應該成爲A<T>::A(){}
的所有條目調用者可以有很多其他的事情當然。
我認爲這可以獨立完成分離存根和實現(只是做到了)。所以step1實際上是不相關的(更完美的世界類的東西),step2依賴於step1,但3-5在所有方面仍然相關。你可能想檢查步驟4的措辭。 – gardian06 2012-02-20 04:19:14
那麼直接跟隨的問題是如何指定我使用的是新類型,並且是否需要包含保存我在現在模板類中使用的類型的文件 – gardian06 2012-02-20 03:43:12
我添加了一些細節以我的答案。在聲明模板類時,不需要聲明類型,因爲模板類不知道類型T是什麼。當你實例化類時,類型將需要被聲明。 – 2012-02-20 03:48:53
謝謝。使用這個模板的原因是我可以保存唯一的數據類型,並且不必每次都要重寫結構(我認爲這是模板的參數之一,並不確定)。更不用說它將通過使其適用於新的類型 – gardian06 2012-02-20 03:52:56