c ++模板导致以下功能错误

时间:2013-11-16 11:11:28

标签: c++ templates

我刚刚开始学习c ++,并且我一直试图弄清楚为什么我会遇到这个问题,代码在使用标准数据结构(正在使用int)之前工作正常但是一旦我尝试使用模板而不是遇到问题< / p>

希望我在正确的部分发布此内容,并在需要时发布更多代码

83    template <class  t>
84    struct node
85    {
86        t number  ;
87        node *next ;
88   };
89   
90   bool isEmpty(node *head)
91   {
92      if (head == NULL)
93      {
94         return true;
95       }
96       else
97       {
98           return false;
99       }
100   }

错误即将到来。

91|error: missing template arguments before '*' token|
91|error: 'head' was not declared in this scope| 
92|error: expected ',' or ';' before '{' token|
 ||=== Build finished: 3 errors, 0 warnings (0 minutes, 0 seconds) ===|

感谢我得到的任何反馈:)

2 个答案:

答案 0 :(得分:3)

你需要s.th.像:

template<class t>
bool isEmpty(node<t> *head) ...

答案 1 :(得分:2)

note是一个模板,您需要使用类型实例化它,例如

bool isEmpty(node<int> *head)
{
  return head == NULL; // compare to if/else, this is much neater, right?
}

或使isEmpty成为模板函数

template<typename T>
bool isEmpty(node<T> *head)
{
  return head == NULL;
}