无参数列表无效使用模板名称

All*_*din 26 c++ templates linked-list data-structures

我遇到了我的链表类的问题,我已经创建了类的接口和实现文件,但是当我构建它时,会发生以下错误:"无效使用模板名'LinkedList'而没有参数列表".这是我的界面文件:

#ifndef LINKEDLIST_H
#define LINKEDLIST_H

template <typename T>
struct Node{
    T info;
    Node<T> *next;
};

template <typename T>
class LinkedList
{
    Node<T> *start;
    Node<T> *current;
public:
    LinkedList();
    ~LinkedList();
};

#endif // LINKEDLIST_H
Run Code Online (Sandbox Code Playgroud)

这是我的实现代码:

#include "LinkedList.h"

LinkedList::LinkedList()
{
   start = nullptr;
   current = nullptr;
}

LinkedList::~LinkedList()
  {

  }
Run Code Online (Sandbox Code Playgroud)

jro*_*rok 49

写这样:

template<typename T>
LinkedList<T>::LinkedList()
{
   start = nullptr;
   current = nullptr;
}
Run Code Online (Sandbox Code Playgroud)

其他成员函数也是如此.但是你会遇到另一个问题 - 模板的声明和定义不能分成不同的文件.

  • @Alladinsaoudi使用C++ 11更好地使用`nullptr`而不是`NULL`.而且,你总是可以简单地使用`0`而不是`NULL`(但是`nullptr`更好,因为编译器可以进行一些检查). (6认同)