使用模板类作为另一个类的变量

时间:2015-10-31 04:33:11

标签: c++

我很难理解C ++中的模板类实现。我理解模板类是什么以及如何使用它,但我似乎无法正确实现它们。这是为学校所以我不能使用标准库列表/等。我创建了一个模板List类,它使用模板节点类作为链表。我有一个第三类bigInt,它将用于进行无限精度加法,乘法等。对于bigInt类,我在尝试使用类型为List的变量“values”时会出错。为什么是这样?错误:“错误C2079'bigInt :: values'使用未定义的类'List'”

bigInt.h看起来像:

\App\Account::find(1)->account_group; // get Account with ID 1
\App\Account::first()->account_group; // get the first Account record

我添加了前两行因为我在某处读到了我需要使用“前向声明”(因为你显然不能使用#include“List.h”),我也不太懂。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

在将类List<>用作成员变量之前,您需要完全定义它。这通常是通过在单独的.h文件中定义模板类并在需要的地方#include来完成的(不确定为什么你认为你不能这样做)。或者,您可以使用指向List的指针而不首先定义它:

template <typename T>
class List;

class bigInt {
public:
  List<int>* values;
  /*...*/
}