リンクリストを作成しようとしています。ノードは次のように定義されます。テンプレート付きリンクリスト:暗黙的に削除されたデフォルトコンストラクタを呼び出す
template<typename T>
class Node {
public:
T value;
Node<T> *next;
};
プリミティブ型では、リンクリストは完全に機能します。しかし、私はそれをカスタムクラスのインスタンスを格納するために使用しようとすると、エラー "ノードの暗黙的に削除されたデフォルトのコンストラクタを呼び出す"を取得します。
私は、新しいノードを作成しようとするとT
であるvalue
を初期化していないという問題があると思います。しかし、私はそれを行う方法がわからないんだけど...
template<typename T>
Node<T> *LinkedList<T>::makeNewNode(T val)
{
Node<T> *newNode = new Node<T>;
newNode->value = val
newNode->next = NULL;
return newNode;
}
これは私のTがコピーコンストラクタを持っていなければならないということですか? – jjiang
@ahhhhhjulie、はい。 – SergeyA