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 : quelques petits soucis


Sujet :

Langage C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Par défaut class template : quelques petits soucis
    Bonjour a tous,
    j'essaye de developpez 2 classes templates :
    - Vecteur : qui ajoute un élément dans un vecteur
    - VecteurTrie : qui hérite de Vecteur mais qui fait intevenir la notion de tri.

    Vecteur.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    template <class type> class Vecteur
    {
    	private :
    		int		nbreElem;
    		int		*index;
    		type	*data;
    	public :
    		Vecteur(int);
    		~Vecteur();
    		type& operator[] (int);
    		void insert(type &);
    };
    Le constructeur de la class Vecteur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    template <class type> Vecteur<type>::Vecteur(int n)
    {
    	nbreElem = n;
    	index = new int[n];
    	data = new type[n];
     
    	for(int i=0; i<n; i++)
    		*(index+i) = 0;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    VecteurTrie.h
    template <class type> class VecteurTrie : public Vecteur <type>
    {
    	public :
    		VecteurTrie(int n);
    	private :
    		void Trier();
    };
    VecteurTrie.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template <class type> VecteurTrie(n) : Vecteur(n) { }
     
    template <class type> void VecteurTrie::Trier() { }
    Les lignes à rajouter pour ne pas que Visual fasse chier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    template class VecteurTrie <int>;
    template class VecteurTrie <string>;
    template class VecteurTrie <AdresseEMail>;
    et j'obtiens des erreurs au moment du link, est-ce que quelqu'un aurait une petite idée de mon erreur ?

  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
    Par défaut
    http://c.developpez.com/faq/cpp/?pag...VERS_templates

    Sinon, faire dériver publiquement VecteurTrie de Vecteur est incorrect en C++. Car l'héritage publique modélise une relation "est un". La solution correcte est l'héritage privé (ou la composition, qui est équivalente).

Discussions similaires

  1. Double héritage de classe template, quelques questions
    Par the_angel dans le forum Langage
    Réponses: 2
    Dernier message: 29/07/2012, 12h26
  2. Quelques petits soucis avec ma boucle For
    Par CosaNostra dans le forum Langage
    Réponses: 10
    Dernier message: 12/06/2010, 21h55
  3. sizeof(classe abstraite) = 4 = petits soucis :(
    Par Sébastien P dans le forum C++
    Réponses: 24
    Dernier message: 01/03/2007, 09h17
  4. Petit soucis avec Thread::Queue et une classe
    Par vodevil dans le forum Web
    Réponses: 16
    Dernier message: 09/06/2006, 21h41
  5. Petit souci JSP et class de connexion a BdD
    Par LeXo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 07/06/2006, 00h57

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