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

C++ Discussion :

Instanciation tableau templaté


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Instanciation tableau templaté
    Bonsoir à tous,

    Alors voilà je suis en train d'implémenter une classe Dictionnaire composée d'un tableau de taille variable(lorsque celui-ci est rempli) d'Assoc ( paires clefs, valeurs ) templatée par les types de ses clefs/valeurs (classe Dico aussi donc).

    Dico.h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    template<typename TypeCle, typename TypeValeur>
    class Dictionnaire {
     
    private:
    Assoc<TypeCle,TypeValeur> * tabAssoc;
    int size;                        // Taille du tableau pour éviter débordement
    int ptr;                          // Position du prochain emplacement disponible
     
    public:
    Dictionnaire();
    ~Dictionnaire();
    Mais là je bloque : l'instanciation de mon tableau me pose un problème

    Dico.cpp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include "Dico.h"
     
    template<typename TypeCle, typename TypeValeur>
    Dictionnaire<TypeCle,TypeValeur>::Dictionnaire():size(10),ptr(0) {
     
    	logs=Assoc<TypeCle,TypeValeur>[5];
     
    }
    et à la compilation j'ai un "error: expected primary-expression before ‘[’ token"

    Merci de votre aide !

    PS: Oui, il se trouve que j'aimerais y arriver à l'ancienne, avec un tableau alors que l'utilisation d'un vector ou même d'un set règlerai tous mes soucis...

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    logs = new Assoc<A1,A2>[5];

    ?
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Oui, et là j'ai une suite de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /tmp/cclUEJqz.o: In function `Dictionnaire<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::Dictionnaire()':
    Dictionnaire.cpp:(.text._ZN12DictionnaireISsiEC1Ev[Dictionnaire<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::Dictionnaire()]+0x49): undefined reference to `Assoc<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::Assoc()'
    /tmp/cclUEJqz.o: In function `Dictionnaire<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::put(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)':
    Dictionnaire.cpp:(.text._ZN12DictionnaireISsiE3putESsi[Dictionnaire<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::put(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)]+0x4a): undefined reference to `Assoc<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int>::Assoc(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)'

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  5. #5
    Futur Membre du Club
    Inscrit en
    Mai 2010
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Yes, Merci Goten !
    J'ai trouvé la solution : il suffisait d'inclure "Assoc.cpp" dans mon Dico.cpp.

    Bonne fin de journée a vous...

  6. #6
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par matyu Voir le message
    J'ai trouvé la solution : il suffisait d'inclure "Assoc.cpp" dans mon Dico.cpp.
    Drôle d'idée et de pratique que d'inclure un .cpp dans un autre .cpp. Cela me rappelle une autre discussion : Problème pour la compilation séparée
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/04/2011, 14h29
  2. instanciation des templates
    Par guillaume07 dans le forum C++
    Réponses: 15
    Dernier message: 05/04/2011, 09h41
  3. Instanciation static template
    Par etienne.bezout dans le forum C++
    Réponses: 4
    Dernier message: 03/12/2010, 17h16
  4. Pointeur de tableau Template
    Par garciajulien dans le forum Langage
    Réponses: 13
    Dernier message: 17/12/2008, 16h15
  5. Instanciation de templates
    Par vandamme dans le forum C++
    Réponses: 9
    Dernier message: 23/05/2008, 12h17

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