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 :

class template


Sujet :

Langage C++

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut class template
    Voilà, je voudrais définir une classe qui serait une "instance" d'un template.

    Voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    template <char a>
    class SuiteRegleType
    {
      public:
        char* string;
     
        SuiteRegleType(char *string);
     
        bool isCorrect();
        //Retourne vrai Ssi SuiteRegleType est syntaxiquement correct
    };
     
    class SuiteRegleType1 SuiteRegleType<')'>;
    Je sais que c'est faux mais je ne sais pas comment faire

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    typedef

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    avec typedef il me marque E2257 attentdu en ligne 37
    donc ça doit pas etre ça

  4. #4
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    arf, ok, ça marche en fait, j'avais inversé les deux arguments de typedef merci!!

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    Je suis tombé sur un autre problème concernant ce sujet:

    comment je fais pour définir des méthodes d'une classe template déclarée dans un .h:

    .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    template <char a>
    class SuiteRegleType
    {
      public:
        char* string;
     
        SuiteRegleType(char *string);
     
        bool isCorrect();
        //Retourne vrai Ssi SuiteRegleType est syntaxiquement correct
    };
    .cpp:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SuiteRegleType::SuiteRegleType(char *string)
    {
      this->string=string;
    }
    Là j'ai une erreur:
    "regle.cpp" : E2102 Impossible d'utiliser le modèle 'SuiteRegleType<a>' sans spécifier des paramètres de spécialisation en ligne 49

  6. #6
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    Tu l'utilises où ton template? Je suis désolé mais je ne le vois pas...

  7. #7
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    D'autre part, je ne te conseille pas d'appeler tes variables par leur type(ici string)...
    Au fait, est-ce possible, ou faut-il ajouter un symbole/mot-clé?

  8. #8
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    En fait, j'ai trouvé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template<char a>
    SuiteRegleType<a>::SuiteRegleType(char *string)
    {
      this->string=string;
    }
    Et ça marche,
    par contre je savais pas que string était un type, mais bon, ça marche!

  9. #9
    Membre émérite Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Par défaut
    On en apprend chaque jour
    Va voir là-dessus:
    http://c.developpez.com/faq/cpp/?page=strings
    Bonne lecture

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

Discussions similaires

  1. Problèmes de fonctions membres de classe templates, gcc3.3.6
    Par yves.dessertine dans le forum Autres éditeurs
    Réponses: 12
    Dernier message: 17/10/2005, 21h36
  2. Trouver le Type d'une classe template dynamiquement ?
    Par Serge Iovleff dans le forum Langage
    Réponses: 3
    Dernier message: 23/09/2005, 16h48
  3. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56
  4. Class template hérité
    Par Azharis dans le forum Langage
    Réponses: 4
    Dernier message: 24/06/2005, 22h03
  5. Réponses: 6
    Dernier message: 06/10/2004, 12h59

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