IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

classe template et utilisation d'une classe template et son iterator à l'intérieur


Sujet :

Langage C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut classe template et utilisation d'une classe template et son iterator à l'intérieur
    Bonjour,
    j'ai un petit souci qui me fait m'arracher les cheveux, alors que ce n'est sûrement qu'une histoire de syntaxe.
    Soit une classe template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    template <class T>
        class Class{
        public:
           T fonction(); 
    };
    template <class T>
        T Class<T>::function()
    {
       list<T>::iterator it;
       retour T();
    }
    La compilation refuse la ligne list<T>::iterator it; :
    error: expected `;' before ‘it’

    évidemment s'il y a un string au lieu de T cela fonctionne à merveille.

    Quelqu'un aurait-il une idée ?

    AJOUT : titre original : classe template et utilisation d'une classe template et son iterator à l'intérieur

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typename list<T>::iterator it;
    Il y a une explication dans la FAQ, section "Templates".

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut
    Merci, désolé pour le post inutile.

    En fait il y avait une amiguité sur un type, et l'utilisation du mot clef typename à résolu la question.

    Quelqu'un a-t-il une idée de comment il fallait comprendre le message d'erreur du compilo ? Car manque un ";" avant le nom de variable ...

  4. #4
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Le compilo lui même n'a pas compris l'erreur et ta suggéré une connerie par defaut de mieux.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut
    Thanks :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. template, et utilisation dans une class
    Par mazertys17 dans le forum C++
    Réponses: 8
    Dernier message: 19/02/2015, 14h01
  2. Réponses: 5
    Dernier message: 13/08/2010, 01h31
  3. template et utilisation avec une classe existante
    Par vartav dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2007, 10h39
  4. Réponses: 6
    Dernier message: 21/05/2006, 20h37
  5. Réponses: 4
    Dernier message: 08/11/2005, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo