2015-10-31 131 views
0

我很難理解C++中的模板類實現。我明白模板類是什麼以及如何使用它,但我似乎無法正確實施它們。這是學校,所以我不能使用標準庫列表/等。我使用模板節點類創建了一個充當鏈接列表的模板List類。我有第三類bigInt將被用來做無限精度加法,乘法等等。對於bigInt類,當我嘗試擁有一個List類型的變量「values」時,我得到一個錯誤。爲什麼是這樣?錯誤:「錯誤C2079‘BIGINT ::值’使用未定義類‘列表’,」使用模板類作爲另一個類的變量

bigInt.h樣子:

template <typename T> 
class List; 
class bigInt { 
public: 
    List<int> values; 
    bigInt(); 
    bigInt add(bigInt); 
    bigInt mul(bigInt); 
    bigInt pow(int); 
}; 

我添加的第一個兩行,因爲我讀的地方,我需要使用「前向聲明」(因爲你顯然不能使用#include「List.h」),我也不太明白。

任何幫助將非常感激。

回答

0

您需要完全定義類List<>,然後才能將其用作成員變量。這通常是通過在一個單獨的.h文件中定義模板類並在需要的地方進行(不確定爲什麼你認爲你不能這樣做)。或者,您可以使用指向List的指針,而不先定義它:

template <typename T> 
class List; 

class bigInt { 
public: 
    List<int>* values; 
    /*...*/ 
} 
相關問題