Operator<<

cs_PunkDude Messages postés 4 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 29 septembre 2004 - 29 sept. 2004 à 03:56
cs_PunkDude Messages postés 4 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 29 septembre 2004 - 29 sept. 2004 à 20:37
Salut, j'ai créé un objet qui permet de parser un XML, et je voudrais faire une surcharge de l'opérateur << pour que quand on utilise l'objet et qu'on fait <<l'objet sa me retourne le contenu du xml.

J'ai déjà une fonction qui me retourne le contenu de mon fichier XML, elle est privé et retourne un char*, j'ai essayer d'appler cette fonction dans mon opérateur mais il me fait une erreur

voici de quoi sa a lair

ostream &operator<< (ostream& out, const C_XML_Object& objet)
{
out << objet.getXMLObjString();

return out;
}

la déclaration de la fonction est la suivante
friend ostream &operator<< (ostream&, const XMLObject&);
elle est déclaré dans ma cxlose objet xml

la fonctino getXMLObjString() me retourne un char* et elle est privé

Quand je compîle il me retourne une erreur

E:\Programmation\Programmation Visual C++\Structure de donnée\InterpreteurXML\_XML_Object.cpp(417) : error C2662: 'getXMLObjString' : cannot convert 'this' pointer from 'const class C_XML_Object' to 'class C_XML_Object &'

quelqu'un peu m'aider???

Merci beaucoup!!

6 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 sept. 2004 à 11:17
Regarde si ta méthode getXMLObjString() est bien const:

char* C_XML_Object::getXMLObjString() const
{
}

Ou bien enleve le const dans operator<< si getXMLObjString() ne peut pas être const (ie elle modifie this)
0
cs_PunkDude Messages postés 4 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 13:36
Ouais j'ai essayé mais y me fait une erreur

cannot access private member declared in class C_XML_Object

????

Pourtant sur msdn y disent que quand on mes une fonction friend elle a accès au membre privé
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 sept. 2004 à 13:57
bah enleve le private, ou mets operator<< dans la classe ou en friend
0
cs_PunkDude Messages postés 4 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 14:06
Ben justement operator<< est friend
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
29 sept. 2004 à 15:12
Je me souviens plus exactement si les friend ont le droit d'accéder au private, peut être qu'il faut mettre en protected
0
cs_PunkDude Messages postés 4 Date d'inscription lundi 21 avril 2003 Statut Membre Dernière intervention 29 septembre 2004
29 sept. 2004 à 20:37
Non sa fonctionne pas, sur msdn il disent que les friend on droit dacces au private
0
Rejoignez-nous