PDA

Visualizza la versione completa : c++ lista von vettore - metodo leggilista


pietrol83
26-10-2011, 15:27
ciao a tutti, sto creando la struttura lista con il vettore, quando testo il metodo leggilista, che dovrebbe restituire il valore dell'array in posizione fornita come argomento, mi d errore. second me un capriccio del compilatore di cacca che sto utilizzando (il dev) perch a me d errore al mio amico va bene, eppure i metodi sono fatti in modo identico.
posto i codici:

listavet.h


#ifndef listav_h
#define listav_h

#include <iostream>
#include <stdlib.h>

using namespace std;

const int dimvet = 100;

template<class tipoelem>
class listav
{
public:
typedef int posizione;

listav();
void crealista();
bool listavuota();
posizione primolista();
bool finelista(posizione);
tipoelem leggilista(posizione);
/*void scrivilista(posizione, tipoelem);
posizione succlista(posizione);
posizione predlista(posizione);
void inslista(posizione, tipoelem);
void canclista(posizione);*/
private:
tipoelem vetlista[dimvet];
int lunglista;
};

#endif

template<class tipoelem>
listav<tipoelem>::listav()
{
this->crealista();
}

template<class tipoelem>
void listav<tipoelem>::crealista()
{
for(int i = 0; i < dimvet; i++)
{
vetlista[i] = 0;
}
lunglista = 0;
}

template<class tipoelem>
bool listav<tipoelem>::listavuota()
{
return(lunglista == 0);
}

template<class tipoelem>
typename listav<tipoelem>::posizione listav<tipoelem>::primolista()
{
return(1);
}

template<class tipoelem>
bool listav<tipoelem>::finelista(typename listav<tipoelem>::posizione pos)
{
return((lunglista == (dimvet - 1)) || (pos == lunglista));
}

template<class tipoelem>
tipoelem leggilista(typename listav<tipoelem>::posizione pos)
{
return(vetlista[pos]);
}


testlistav.cpp


#include "listav.h"
#include <iostream>
#include <stdlib.h>

using namespace std;

int main()
{
listav<int> list;

cout << list.listavuota() << "\n\n";

cout << list.primolista() << "\n\n";

cout << list.finelista(0) << "\n\n";

cout << list.leggilista(0) << "\n\n";

system("pause");
return 0;
}


l'errore visualizzato il seguente:

72 C:\Dev-Cpp\esercizi\listav.h `vetlista' undeclared (first use this function)

perch mi d questo errore dato che vetlista dichiarato nella classe???

oregon
26-10-2011, 16:06
Ti sei dimenticato qualcosa qui



template<class tipoelem>
tipoelem listav<tipoelem>::leggilista(typename listav<tipoelem>::posizione pos)
{
return(vetlista[pos]);
}

Loading