Salut à tous,
J'ai commencé à coder un programme tout bête dont le but est de pouvoir créer des vecteurs de n'importe quel type (int, double, char, float etc...) pour pouvoir les manipuler ensuite.
J'ai donc créé une classe CVecteur avec pour l'instant seulement les constructeurs, destructeurs et accesseurs.
Mon soucis survient lorsque je compile, lors de l'édition des liens.
Lorsque je créé mon objet vecteur dans la main, j'obtient l'erreur suivante :
Erreur 1 error LNK2019: symbole externe non résolu "public: __thiscall CVecteur<int>::CVecteur<int>(void)" (??0?$CVecteur@H@@QAE@XZ) référencé dans la fonction _main
Et si j'essaye de manipuler l'objet, j'ajoute une erreur du même genre mais en rapport avec la fonction utilisée.
J'ai bien une petite idée de ce que signifie cette erreur, mais je suis incapable de voir où j'ai fauté dans mon code...
Voici mes morceaux de codes :
L'instance de ma classe :
Le corps de ma classe :
Et ma main un peu ridicule :
Voilà voilà... En espérant que quelqu'un soit en mesure de trouver la solution à mon problème
Merci d'avance
J'ai commencé à coder un programme tout bête dont le but est de pouvoir créer des vecteurs de n'importe quel type (int, double, char, float etc...) pour pouvoir les manipuler ensuite.
J'ai donc créé une classe CVecteur avec pour l'instant seulement les constructeurs, destructeurs et accesseurs.
Mon soucis survient lorsque je compile, lors de l'édition des liens.
Lorsque je créé mon objet vecteur dans la main, j'obtient l'erreur suivante :
Erreur 1 error LNK2019: symbole externe non résolu "public: __thiscall CVecteur<int>::CVecteur<int>(void)" (??0?$CVecteur@H@@QAE@XZ) référencé dans la fonction _main
Et si j'essaye de manipuler l'objet, j'ajoute une erreur du même genre mais en rapport avec la fonction utilisée.
J'ai bien une petite idée de ce que signifie cette erreur, mais je suis incapable de voir où j'ai fauté dans mon code...
Voici mes morceaux de codes :
L'instance de ma classe :
Code:
#pragma once
template<class MType>
class CVecteur
{
private:
unsigned int uiVECTaille;
MType * pMTypeVECValeurs;
public:
CVecteur();
CVecteur(CVecteur &VECParam);
CVecteur(unsigned int uiVECTailleParam, MType * pMTypeVECValeurParam);
~CVecteur();
unsigned int VECLireTaille();
void VECModifierTaille(unsigned int uiVECTaileParam);
MType * VECLireValeurs();
void VECModifierValeurs(unsigned int uiIndice, MType MTypeVECValeurParam);
};
Le corps de ma classe :
Code:
#include "Vecteur.h"
template<class MType>
CVecteur<MType>::CVecteur()
{
uiVECTaille = 0;
pMTypeVECValeurs = NULL;
}
template<class MType>
CVecteur<MType>::CVecteur(CVecteur &VECParam)
{
uiVECTaille = VECParam.uiVECTaille;
pMTypeVECValeurs = new MType[VECParam.uiVECTaille];
for(unsigned int uiBoucle = 0; uiBoucle < VECParam.uiVECTaille; uiBoucle++)
pMTypeVECValeurs[uiBoucle] = VECParam.pMTypeVECValeurs[uiBoucle];
}
template<class MType>
CVecteur<MType>::CVecteur(unsigned int uiVECTailleParam, MType * pMTypeVECValeurParam)
{
uiVECTaille = uiVECTailleParam;
pMTypeVECValeurs = new MType[uiVECTailleParam];
for(unsigned int uiBoucle = 0; uiBoucle < uiVECTailleParam; uiBoucle++)
pMTypeVECValeurs[uiBoucle] = pMTypeVECValeursParam[uiBoucle];
}
template<class MType>
CVecteur<MType>::~CVecteur()
{
delete[] pMTypeVECValeurs;
}
template<class MType>
unsigned int CVecteur<MType>::VECLireTaille()
{
return uiVECTaille;
}
template<class MType>
void CVecteur<MType>::VECModifierTaille(unsigned int uiVECTailleParam)
{
uiVECTaille = uiVECTailleParam;
}
template<class MType>
MType * CVecteur<MType>::VECLireValeurs()
{
return pMTypeVECValeurs;
}
template<class MType>
void CVecteur<MType>::VECModifierValeurs(unsigned int uiIndice, MType MTypeVECValeurParam)
{
pMTypeVECValeurs[uiIndice] = MTypeVECValeurParam;
}
Et ma main un peu ridicule :
Code:
#include <iostream>
#include "Except.h"
#include "Vecteur.h"
using namespace std;
int main()
{
CVecteur<int> VECT1;
return 0;
}
Voilà voilà... En espérant que quelqu'un soit en mesure de trouver la solution à mon problème
Merci d'avance