Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655

    [C++]Problema definizione funzione con template

    ciao a tutti , ho scritto questa funzione in una classe template

    codice:
    Listapunt<nodoPunt> getAdiacenti();
    e l'ho implementata come segue:

    codice:
    template <typename T>
    nodoPunt<T>::Listapunt<nodoPunt> nodoPunt<T>::getAdiacenti()
    {
         return lista_adiacenti;
    }
    dove nodoPunt<T> è la classe a cui appartiene la funzione getAdiacenti dichiarata sopra, e Listapunt<nodoPunt> è un'altra classe template che importo, e che come parametro ha un oggetto dello stesso tipo della classe che sto definendo.

    il compilatore mi segnala questi due errore :
    codice:
    122 \nodoPunt.h non-template `Listapunt' used as template 
    122 \nodoPunt.h use `nodoPunt<T>::template Listapunt' to indicate that it is a template
    Non riesco a capire dove sbaglio, potreste aiutarmi per favore??

  2. #2
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    non vorrei dire una fesseria ma userei la parola typename prima del tipo di ritorno

    codice:
    template <typename T>
    typename nodoPunt<T>::Listapunt<nodoPunt> nodoPunt<T>::getAdiacenti()
    {
         return lista_adiacenti;
    }
    però controlla una cosa.. listapunt<nodopunt> è una sottoclasse di nodopunt<t>?

    perchè da quello che hai scritto listapunt è definito all'interno di nodopunt e non "importato" come hai scritto

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    655
    Listapunt la importo con la clausola #include nella classe nodoPunt

  4. #4
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    allora il tipo di ritorno dovrà essere

    Listapunt<nodoPunt>

    e non

    nodoPunt<T>::Listapunt<nodoPunt>

    perchè Listapunt<nodoPunt> non è una classe di nodoPunt<T>

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.