1. ホーム
  2. c++

[解決済み】引数リストがないテンプレート名の無効な使い方

2022-02-02 13:06:50

質問

リンクリストクラスで問題に直面しています。クラスのインターフェイスと実装ファイルを作成しましたが、ビルドすると次のエラーが発生します。 これが私のインターフェイスファイルです。

#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

で、これが私の実装コードです。

#include "LinkedList.h"

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

LinkedList::~LinkedList()
  {

  }

解決方法は?

このように書いてください。

template<typename T>
LinkedList<T>::LinkedList()
{
   start = nullptr;
   current = nullptr;
}

また、他のメンバ関数についても同様です。しかし、別の問題にぶつかります。テンプレートの宣言や定義が を分離することはできません。 を別のファイルにコピーします。