リンクされたリストをテンプレートでビルドする必要がありますが、なぜ動作しないのかわかりません。テンプレートを使用する前にリンクリストを作成しました。テンプレートでリンクされたリスト
//linkedList.h
#pragma once
#ifndef _LISTASIMPLE_H
#define _LISTASIMPLE_H
template<class D>
struct Nodo
{
int carga;
int binario;
D caracter;
Nodo<D> *Siguiente;//means next
};
template<class D>
class listaSimple
{
public:
listaSimple();
~listaSimple();
void InsertarInicio(const D&);
bool ListaVacia();
void Mostrar();
private:
Nodo<D> *primero;
Nodo<D> *ultimo;
};
template<class D>
listaSimple<D>::listaSimple()
{
primero = NULL;
}
template<class D>
listaSimple<D>::~listaSimple()
{
Nodo<D> *aux;
while (primero != NULL)
{
aux = primero;
primero = primero->Siguiente;
delete aux;
}
}
template<class D>
void listaSimple<D>::InsertarInicio(const D& dato)
{
if (ListaVacia())
{
primero = new Nodo<D>(dato);
}
else
{
Nodo<D> *nodoNuevo = new Nodo<D>(dato);
nodoNuevo->Siguiente = primero;
primero = nodoNuevo;
}
}
template<class D>
bool listaSimple<D>::ListaVacia()
{
if (primero == NULL)
{
return true;
}
else
{
return false;
}
}
template<class D>
inline
void listaSimple<D>::Mostrar()
{
Nodo<D> *aux = primero;
while (aux != NULL)
{
cout << aux->caracter << "->";
aux = aux->Siguiente;
}
}
:私の次のコードで
Error C2664 'Nodo<D>::Nodo(Nodo<D> &&)': cannot convert argument 1 from 'const int' to 'const Nodo<D> &' Datos2 d:\google drive\visual studio 2015\projects\datos2\datos2\listaSimple.h 69
Error C2664 'Nodo<D>::Nodo(Nodo<D> &&)': cannot convert argument 1 from 'const int' to 'const Nodo<D> &' Datos2 d:\google drive\visual studio 2015\projects\datos2\datos2\listaSimple.h 73
:今私の問題は、私はリストを作成した場合、すべてがOKですが、私はそれに何かを挿入しようとすると、私は次のエラーを取得し、ということです
と
//Source.cpp
#include <iostream>
#include <string>
#include "linkedList.h"
using namespace std;
int main() {
listaSimple<int> Nueva;
Nueva.InsertarInicio(5);
system("pause");
return 0;
}
'if(EmptyList)'は実際のコードですか?関数を呼び出すと思われるので、カッコがない場合は、たとえば:if(EmptyList()) – UnholySheep
@UnholySheepうわー、翻訳エラーです。それを指摘してくれてありがとう – Twhite1195
'Siguiente'とは何ですか? 'class D'も定義されていません。'listaSimple NewList'はすべて間違っています。おそらく' linkedList NewList'を意味します。ここで私の 'D'は表示されていないクラスです。 –