bonjour,j’aurai besoin d’un peu d’aide svp . j’ai une classe d’ensemble dans la quel j’ai écrit un constructeur de copie et un opérateur d’affectation et je rencontre cette erreur(plus bas) je pense que l’erreur provient de la spécification et j’aimerai savoir si c’est le cas et ce qu’il faudrait que je modifie pour ne plus rencontrer ps : dans le main je fais qu’une affectation voici l’erreur
ld: warning: ignoring file programme, file was built for unsupported file format ( 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 ) which is not the architecture being linked (x86_64): programme
bout de code de mon hpp
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 | template < typename T=std::string> class Ensemble { private : struct Maillon_T { T elt; Maillon_T * suiv; }; Maillon_T *tete; int nb;// nb elements public : Ensemble();//constructeur initialise ~Ensemble();//destructeur tue Ensemble(Ensemble<T> const&);****//probleme ici!!!!!!!!!!!**** Ensemble<T> operator=(Ensemble<T> const& );****//et la !!!!!!!!!!**** bool estVide(); bool contient(T); void ajouter(T); void retirer(T); |
mon implementation pour l’operateur d’affectation
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 | template<typename T> Ensemble<T> Ensemble::operator=(Ensemble<T> const& old){ Ensemble<T> nouve; Maillon_T *cour; Maillon_T *tmp; Maillon_T *nouvp; nouvp= new Maillon_T(); cour=old.tete; if(cour!=NULL){ (*nouvp).elt=(*cour).elt; nouve.tete=nouvp; tmp=nouve.tete; cour=(*cour).suiv; while(cour!=NULL){// Maillon_T *nouvp; nouvp=new Maillon_T(); (*nouvp).elt=(*cour).elt; (*tmp).suiv=nouvp;// cour=(*cour).suiv; tmp=nouvp;//(*tmp).suiv; } } return *this; } |
mon implémentation pour le constructeur de copie
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 | template<typename T> Ensemble<T>::Ensemble(Ensemble<T> const& old){ Ensemble<T> nouve; Maillon_T *cour; Maillon_T *tmp; Maillon_T *nouvp; nouvp= new Maillon_T(); cour=old.tete; if(cour!=NULL){ (*nouvp).elt=(*cour).elt; nouve.tete=nouvp; tmp=nouve.tete; cour=(*cour).suiv; while(cour!=NULL){// Maillon_T *nouvp; nouvp=new Maillon_T(); (*nouvp).elt=(*cour).elt; (*tmp).suiv=nouvp;// cour=(*cour).suiv; tmp=nouvp;//(*tmp).suiv; } } } |
merci d’avance pour vos réponses