Erreur imcompréhensible :'(

Signaler
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006
-
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006
-
/usr/include/c++/4.0.2/ext/mt_allocator.h: In member function ‘void
__gnu_cxx::__mt_alloc_base<_Tp>::construct(_Tp*, const _Tp&)
[with _Tp = Sommet]’:

/usr/include/c++/4.0.2/bits/stl_list.h:440: instantiated
from ‘std::_List_node<_Tp>* std::list<_Tp,
_Alloc>::_M_create_node(const _Tp&) [with _Tp = Sommet, _Alloc =
std::allocator<Sommet>]’

/usr/include/c++/4.0.2/bits/stl_list.h:1151: instantiated
from ‘void std::list<_Tp,
_Alloc>::_M_insert(std::_List_iterator<_Tp>, const _Tp&)
[with _Tp = Sommet, _Alloc = std::allocator<Sommet>]’

/usr/include/c++/4.0.2/bits/stl_list.h:773: instantiated
from ‘void std::list<_Tp, _Alloc>::push_back(const _Tp&)
[with _Tp = Sommet, _Alloc = std::allocator<Sommet>]’

Graphe.cpp:66: instantiated from here

/usr/include/c++/4.0.2/ext/mt_allocator.h:611: erreur: no matching function for call to ‘Sommet::Sommet(const Sommet&)’

Sommet.cpp:39: note: candidats sont: Sommet::Sommet(Sommet&)

Sommet.cpp:32:
note:
Sommet::Sommet(std::string)

Sommet.cpp:26:
note:
Sommet::Sommet()



Sommet est une classe


Graphe.cpp:66: instantiated from here : la ligne est : sommets.push_back(s);



en sachant que sommet est déclaré comme ceci : list<Sommet> sommets;



j'ai cette erreur , j'aimerais quelle type d'erreur c'est, parce que je trouve cette erreur tres bizare :(??

5 réponses

Messages postés
15113
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
3 août 2021
98
Euh...tu as une incompatibilité entre tes déclarations de constructeurs et ton utilisation?
Un peu de code pourrait aider peur-être...

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Le site de mon mariage
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006

voila :



class Graphe

{



private:



// sommets du graphe

list<Sommet> sommets;

....



// les methodes de la classe graphe:

public:

// constructeur

Graphe( );



void chargerfichier(FILE *);

void afficheinfo();

.....

};





dans la méthode chargerfichier :



void Graphe::chargerfichier(FILE *f)

{

fread( &type, sizeof(int), 1, f );

fread( &nombreSommets, sizeof(int), 1, f );

string n1,n2;

int p;

for ( int i = nombreSommets; i > 0; i--)

{

fread( &n1, sizeof(string), 1, f );

Sommet s(n1);

sommets.push_back(s);

}

}



merci de a réponse
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006

je suis pas assez précis ?
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006

dites moi si vous avez besoin de détail supplémentaire :(



je comprends vraiment pas, j'ai comparé avec des exemples sur bouquin et je ne vois pas l'erreur
Messages postés
51
Date d'inscription
dimanche 13 février 2005
Statut
Membre
Dernière intervention
28 décembre 2006

je sais pas si j'ai avancé ou réculé mais en déclarant mes listes comme ceci : list<Sommet> sommets();



mais ensuite lorsque j'apelle la méthode
sommets.push_back(s); ca me met : erreur: insufficient contextual
information to determine type



:'(