C ++问题中的基本继承

时间:2016-07-03 19:32:04

标签: c++ inheritance

我不断收到错误“'{'token {”

之前的预期类名

我尝试过多种不同的方法,但是没有找到。如果有人能帮助我,我将非常感激。 我的LinkedList.h文件

#ifndef LINKEDLIST_H
#define LINLEDLIST_H


#include <iostream>
#include "Node.h"

using namespace std;

template <class T>
class LinkedList: public Node
{

private:
  Node<T>* head;
  Node<T>* current;
  Node<T>* tail;

public:
  LinkedList(){
  }

  virtual ~LinkedList(){
  }
};

#endif

和我的Node.h文件

#ifndef NODE_H
#define NODE_H

#include <iostream>

using namespace std;

template <class T>
class Node{

  private:
    T data;
    Node<T>* pNext;

  public:
    Node(){
      pNext = NULL;
    }

    ~Node(){
      delete this->pNext;
    }
};

#endif

1 个答案:

答案 0 :(得分:5)

Node是模板,而不是类型。 Node<T>是一种类型。使用

template <class T>
class LinkedList: public Node<T>
{
  ...
};

<强> PS

作为设计选择,从LinkedList<T>继承Node<T>是没有意义的。您应该只能使用

实现LinkedList<T>
template <class T>
class LinkedList
{
   private:
      Node<T>* head;
      Node<T>* current;
      Node<T>* tail;
};