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
codice:
#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
codice:
#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???