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 :

[Template] Problème Classe Template


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut [Template] Problème Classe Template
    Bien le bonjour Moi j'ai un probleme avec mes Template J'ai crée une classe Vecteur qui est sensé est compatible avec tout les type mais elle pose problème je ne sais pas trop pourquoi voici mon code Voila le probleme n'est pas lors de la compilation mais plutot lors d'une instanciation par exemple avec une structure Index que voici : Merci

    struct Index
    {
    int Cle;
    bool Actif;
    };

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    void main()
    {
         //     Erreur
         cVecteur<Index> VecteurIndex(50); // Vecteur de Type Index de 50 Place
         //     Erreur
         cVecteur<int> VecteurInt(50); // Vecteur d'entier de 50 Place
    }
     
    // cVecteur.h
    #pragma once
    #include <stdlib.h>
     
    template <typename Type>
    class cVecteur
    {
    	private:
    		static const int LimitePhys = 100;
    		Type V[100];
    		int LL;
    	public:
    		cVecteur(int);
    		~cVecteur();
    		void Vider_LL();
    		bool Ajouter(Type);
    		void Retirer();
    		void RetirerSelonPos(int);
    		int Recherche(int Valeur);
    };
     
    // cVecteur.cpp
     
    //	Classe Vecteur
    #include "cVecteur.h"
     
    //	Constructeur
    template <typename Type>
    cVecteur<Type>::cVecteur(int Limite)
    {
     
    	LL = Limite;
    }
     
    //	Destructeur
    template <typename Type>
    cVecteur<Type>::~cVecteur()
    {
    }
     
    //	Vide le vecteurlogiquement
    template <typename Type>
    void cVecteur<Type>::Vider_LL()
    {
    	LL = 0;
    }
     
    //	Ajoute une valeur à l'extreme droite
    template <typename Type>
    bool cVecteur<Type>::Ajouter(Type Valeur){
    	bool Temoin;
     
    	if (LL+1 < LimitePhys){
    		LL++;
    		V[LL] = Valeur;
    		Temoin = true;
    	}
    	return Temoin;
    }
     
    //	Retire une valeur
    template <typename Type>
    void cVecteur<Type>::Retirer()
    {
    	LL--;
    }
     
    //	Recherche une valeur
    template <typename Type>
    int cVecteur<Type>::Recherche(int Valeur)
    {
    	int Pos = -1;
    	for (int i = 0; i <= LL; i++)
    		{
    			if (V[i] == Valeur)
    				{
    					Pos = i;
    				}
    		}
    	return Pos;
    }
     
    //	Retire une valeur selon une position
    template <typename Type>
    void cVecteur<Type>::RetirerSelonPos(int Pos)
    {
    	for (int i = Pos; i < LL; i++)
    		{
    			V[i] = V[i+1];
    		}
    	LL--;
    }

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    A mon avis ce n'est pas un bon plan. std::vector<T> devrait répondre à votre question pour index ou autres types de données.

    S'agissant d'un vecteur autant se servir de la standard template librairie.

    Mais je peux me tromper...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Oui merci :p j'aurais bien pu utilisé la classe vector, mais le professeur voulais qu'on essais d'intégrer la classe vecteur que nous avons crée au projet. Mais moi j'ai décidé de la modifié pour quel puisse supporté tout les type de variables. C'est pour cela :p Si je ne trouve pas de solution je vais probablement me tournée vers la classe vector ou simplement un Index[]

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Salut,

    Je pense que votre professeur cherche inutilement à vous faire réinventer la roue. Il vous aurait enseigné l'usage des conteneurs ( vector ) cela vous aurait été bien évité des tracas inutiles.

  5. #5
    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 : 39
    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
    Le message d'erreur, on est censé le deviner ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Bonjour :p oui pardons j'ai oublié le message d'erreur :

    Erreur 2 error LNK2019: symbole externe non résolu "public: __thiscall cVecteur<struct Index>::~cVecteur<struct Index>(void)" (??1?$cVecteur@UIndex@@@@QAE@XZ) référencé dans la fonction _main TP3_Gestion_Membres.obj

    Erreur 3 error LNK2001: symbole externe non résolu "public: __thiscall cVecteur<struct Index>::cVecteur<struct Index>(int)" (??0?$cVecteur@UIndex@@@@QAE@H@Z) TP3_Gestion_Membres.obj


    Merci

  7. #7
    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 : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 13
    Points : 15
    Points
    15
    Par défaut
    Merci pour le lien l'erreur était simple Les class template ne peuvent pas être séparé de leur définition et implémentation

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

Discussions similaires

  1. Problème Classe Template
    Par joelafrite3774 dans le forum C++
    Réponses: 1
    Dernier message: 08/11/2014, 01h47
  2. Problème class template
    Par -_-val-_- dans le forum Débuter
    Réponses: 2
    Dernier message: 11/06/2010, 15h04
  3. Appel de fonction problème class/template
    Par Niko_de_bordo dans le forum Langage
    Réponses: 3
    Dernier message: 15/04/2010, 00h48
  4. problème classes templates...
    Par youp_db dans le forum C++
    Réponses: 3
    Dernier message: 02/11/2005, 13h04
  5. [DLL/classe template] problème de link
    Par Bob.Killer dans le forum C++
    Réponses: 7
    Dernier message: 31/08/2005, 18h56

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