Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Tipo non riconosciuto classi annidate

    Salve, ho il seguente pezzo di codice (non lo metto tutto perchè è lungo)
    codice:
    template <class T>
    class VettoreDinamico{
    public:
    ...
    ...
    class iterator{
    	public:
    		iterator(){ ptr = NULL; }
    		iterator& operator =(const iterator&);
    		iterator operator ++(int);
    		bool operator ==(const iterator&);
    		bool operator !=(const iterator&);
    		T operator *();
    
    		
    	private:
    		T* ptr;
    	};
    private:
    ...
    ...
    };
    
    template <class T>
    VettoreDinamico<T>::iterator& VettoreDinamico<T>::iterator::operator =(const VettoreDinamico<T>::iterator& itvett)
    {
    	ptr = itvett;
    }
    Gli errori sono i seguenti:
    codice:
    errori
    Avviso	1	warning C4346: 'VettoreDinamico<T>::iterator': il nome dipendente non è un tipo	c:\documents and settings\xp\documenti\visual studio 2008\projects\vettoredinamicocpp\vettoredinamicocpp\vettoredinamico.h	56	VettoreDinamicoCpp
    Errore	2	error C2143: errore di sintassi: ';' mancante prima di '<'	c:\documents and settings\xp\documenti\visual studio 2008\projects\vettoredinamicocpp\vettoredinamicocpp\vettoredinamico.h	56	VettoreDinamicoCpp
    Errore	3	error C4430: identificatore di tipo mancante, verrà utilizzato int. Nota: default-int non è più supportato in C++	c:\documents and settings\xp\documenti\visual studio 2008\projects\vettoredinamicocpp\vettoredinamicocpp\vettoredinamico.h	56	VettoreDinamicoCpp
    Errore	4	fatal error C1903: impossibile recuperare l'errore o gli errori precedenti. Interruzione della compilazione	c:\documents and settings\xp\documenti\visual studio 2008\projects\vettoredinamicocpp\vettoredinamicocpp\vettoredinamico.h	56	VettoreDinamicoCpp
    Non mi riconosce VettoreDinamico<T>::iterator come tipo di dato, perchè?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Devi usare typename.
    codice:
    typename VettoreDinamico<T>::iterator&
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3

    Re: [C] Tipo non riconosciuto classi annidate

    fai così:
    codice:
    template <class T>
    typename VettoreDinamico<T>::iterator& VettoreDinamico<T>::iterator::operator =(const VettoreDinamico<T>::iterator& itvett)
    {
    	ptr = itvett;
    }

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 © 2024 vBulletin Solutions, Inc. All rights reserved.