Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    211

    c++ lista von vettore - metodo leggilista

    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???

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ti sei dimenticato qualcosa qui

    codice:
    template<class tipoelem>
    tipoelem listav<tipoelem>::leggilista(typename listav<tipoelem>::posizione pos)
    {
       return(vetlista[pos]);
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.