リンクテンプレートで使用するノードテンプレートを作成しようとしていますが、Node.hのコンストラクタが定義されていないというエラーが発生しています。私はNode.hファイルとVisual Studioで作成したNode.temファイルを持っています。 Node.hファイルは次のようになります。C++ LinkListとノードテンプレートのリンクエラー
#ifndef NODE_H
#define NODE_H
#include <cstdlib>
template <class Type>
class Node
{
public:
Node();
Node(Type indata);
Type data;
Node<Type>* next;
Node<Type>* prev;
};
#include "Node.tem"
#endif
と私のNode.temファイルは次のようになります。いくつかのデバッグ後
template <class Type>
Node<Type>::Node()
{
next = nullptr;
}
template <class Type>
Node<Type>::Node(Type indata)
{
data = indata;
next = nullptr;
}
問題はリンクで私のalloc関数で発生のように、それが見えますコードのこのビットのリストテンプレート:
template <class Type>
Node<Type>* LinkList<Type>::alloc(Type indata)
{
Node<Type>* dynamicNode = new Node(indata); //error occurs here
return dynamicNode;
}
私が得るエラーは以下のとおりです。
'Node': class has no constructors
これは大きなプロジェクトのほんの一部であるよう 'Node': use of class template requires template argument list
私main()
コードはかなり大きいですが、必要であれば、私はそれを投稿することができます。
あなたが実際にコンパイラエラーを取得している、またはこれは単にから来ていますインテリセンス? –
@NathanMonteleoneはいコンパイラエラーが発生します。コンパイラのエラーは 'エラーC2514です: 'Node':クラスにコンストラクタがありません。 ' – kdubs
@ pm100 VSに一意であるかどうかわかりません。私がヘッダーファイルにそれを含めないと、理論的に.hは.temファイルを "見る"ことができません。とにかくそれを見るようには見えませんが。 – kdubs