Accueil > Forum > > > > Templace c++ ==> URGENT svp
Templace c++ ==> URGENT svp
mardi 28 février 2006 à 13:15:42 |
Templace c++ ==> URGENT svp

najla1986
|
bonjour, j'ai un dossier a rendre pour mes cours et j'ai un soucis concernant l'utilisation de mes template. c'est donc a l'appel des methode du template que j'obtien des erreur de link voici mon code :
Classe Template
#include <iostream>
template<class T>
class Vecteur
{
protected:
T *data;
int nbElem;
int *index;
public:
Vecteur();
Vecteur(int n);
~Vecteur(void){delete data;delete index;}
T& operator[](int i){return *(data+i);}
void setElement(T& elm);
void deleteElement(int num);
void affichevect(void);
void getIndex(void);
int getnbElem(){return nbElem};
};
template<class T>
class VecteurTrie:public Vecteur<T>
{
//friend ostream& operator<<(ostream& m,const VecteurTrie<T>& t);
private:
T *tmp;
public:
VecteurTrie();
VecteurTrie(int n);
~VecteurTrie(void){delete tmp;}
VecteurTrie& operator=(const VecteurTrie<T>& vect);
void Tri(void);
//friend ostream& operator<<(ostream& m,VecteurTrie<T> & t);
};
#endif
Classe AdresseEMail
#include<string>
#include<fstream>
#include <iostream>
using namespace std;
#include<stdlib.h>
class InvalidMailAdressException{};
class AdresseEMail
{
...
private:
static unsigned int num;
string identifiant;
string provider;
int compS(AdresseEMail aem);
filebuf fichier;
char nomFichier[20];
int CheckFormatEMail(string adr);
public:
AdresseEMail();
AdresseEMail(string ide,string pro);
AdresseEMail(const AdresseEMail &aem);
~AdresseEMail();
string getIdentifiant() const {return identifiant; }
string getProvider() const {return provider; }
void setIdentifiant(const string ide) {identifiant = ide; }
void setProvider(const string pro) {provider = pro; }
void setEMail(string&);
...
};
#endif
Classe Message
class message
{
private:
unsigned int numero;
AdresseEMail * expediteur;
VecteurTrie<AdresseEMail> destinataire;
bool urgent; // 1 urgent, 0 pas urgent
bool statut; // 1 lu, 0 pas lu
string sujet;
string texte;
int NbDest;
public:
message ();
message(const message &);
~message ();
//APPEL DES FONCTIONS SET
void setExpediteur(string& e);
void setDestinataire(string& d);
void setUrgent(bool u);
void setStatut(bool s){statut=s;}
void setSujet (string s);
void setTexte(string t){texte=t;}
void setNbDest(int n){NbDest=n;}
//COMPOSITION MESSAGE
void compExpediteur();
void compDestinataire();
void composer();
...
};
Voici les codes de mes deux méthodes de la classe Message posant le problème
void message::setDestinataire(string & d) { AdresseEMail ad; ad.setEMail(d); //destinataire.setElement(ad); // POSE PROBLEME !!!! // }
void message::affiche() { cout << endl<< "Message" << getNumero();
if (getUrgent()==0) cout << " Non-Urgent" << endl<< endl; else cout << " Urgent" << endl<< endl;
cout << "Expediteur : " << expediteur->toString() << endl; cout << endl << "Destinataire : "; //destinataire.affichevect(); // POSE PROBLEME !!!! //
cout << endl << "Sujet : " << getSujet() << endl << getTexte(); cout << endl << endl << "Statut du message : " ; if (getStatut()==0) cout << " Non Lu" << endl<< endl; else cout << " Lu" << endl<< endl; }
Voici les message d'erreur :
Linking... Message.obj : error LNK2019: unresolved external symbol "public: void __thiscall Vecteur<class AdresseEMail>::setElement(class AdresseEMail &)" (?setElement@?$Vecteur@VAdresseEMail@@@@QAEXAAVAdresseEMail@@@Z) referenced in function "public: void __thiscall message::setDestinataire(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?setDestinataire@message@@QAEXAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Message.obj : error LNK2019: unresolved external symbol "public: void __thiscall Vecteur<class AdresseEMail>::affichevect(void)" (?affichevect@?$Vecteur@VAdresseEMail@@@@QAEXXZ) referenced in function "public: void __thiscall message::affiche(void)" (?affiche@message@@QAEXXZ)
C:\Documents and Settings\***\Mes documents\Cours\C++\Dossier\InpresMail\Debug\InpresMail.exe : fatal error LNK1120: 2 unresolved externals
Dans le code de mon fichier Vecteur.cpp pour le templace j'ai ajouté a la fin du fichier l'instruction :
template class VecteurTrie <AdresseEMail>;
Merci pour votre réponse 
|
|
mardi 28 février 2006 à 14:30:54 |
Re : Templace c++ ==> URGENT svp

vecchio56
|
Pour les classes templates, tu dois écrire l'implémentation dans les fichiers .h, ca vient peut être de la
|
|
mardi 28 février 2006 à 15:01:06 |
Re : Templace c++ ==> URGENT svp

najla1986
|
bien vu... ca a résolu mon problème de link merci beaucoup !!
j'aurai une autre question, je dois sauvegarder cette classe message dans un fichier, quelqu'un aurait une technique pour le template ? car je recherche comment sauvegarde un classe contenant un template mais je ne trouve pas.. cela se fait-il automatiquement comme un tableau ? merci pour vos réponses
|
|
Cette discussion est classée dans : message, int, string, void, adresseemail
Répondre à ce message
Sujets en rapport avec ce message
Fonctions Imbriquées avec argument string [ par Zakata ]
Bonjours,J'esaye de programmer deux classes de menu. L'architecture est la suivantes : Une classe Menuclass Menu{public: Menu(void); ~Menu(void)
multi heritage [ par foxz ]
Bonjour,d'une maniere general.class strm{ // base stream virtual int w(void*,int)=0; // write virtual int r(void*,int)=0; //read};class fil:virtual pu
Problème d'affichage de variables [ par Ilmen_ ]
Voila, j'ai un problème avec mon code, j'ai mis les erreurs signalés par le compilateur en rouge et sur les lignes correspondantes. Je ne sus pas non
Une méthode virtuelle appelée depuis un destructeur n'est pas héritée!? [ par Forman ]
Bonjour(soir) à tous,je viens de me mettre au C++ et à GLUT et je bute sur un problème que je n'arrive pas à m'expliquer. D'abord, voilà le code en qu
Comment faire pour qu'un string soit egal a un int? en c++ [ par ndubien ]
Salut, Comment faire pour qu'un string soit egal a un int? (en c++)int nombre(1);Je veux que :string a soit egal a "mot1" + nombre + "mo
error C2143 [ par IH2MCBETA ]
1>c:\users\richard\documents\visual studio 2005\ih2mc\parameters.h(15) : error C2143: erreur de syntaxe : absence de ';' avant '*'1>c:\users\richard\d
jeux d'échec qui nous met en échec!! [ par shinohinata01 ]
Bonjour,nous rencontrons actuellement un problème sur un de nos programmes qui traite d'un jeux d'échec.en gros nous avons une fonction dans une class
String en int [ par drcmomo ]
Bonjour!!Je suis entrain de faire une interface graphique, dans ma textBox mes données sont type String j'aimerais bien s'avoir commentfaire pour pass
recherche aide SVP [ par gelloula ]
J 'ai un projet à faire en borlandc en mode BGI, Je suis encore une debutante et je bloque là dessus depuis une semaine.
Dessiner un pixel sur le bureau [ par debutant VB ]
Bonjour tout le monde.Je débute en C++, et j'ai un petit problème :J'ai fait un petit programme qui devrai dessiner un point rouge sur le bureaumais ç
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|