2015-10-31 86 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; 
    /*...*/ 
} 
相关问题