begin process at 2012 05 30 04:38:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

surcharge operator <<


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

surcharge operator <<

lundi 1 novembre 2010 à 00:11:16 | surcharge operator <<

elninodu42

Bonjour,

Je dois trouver une solution permettant d'afficher dans un flux de chaine. Je ne peux pas utiliser de string...

Je dois donc faire une surcharge d'operateur<<, j'ai déjà fait celle pour le =, et le +.

Je n'ai par conter aucunne idée de comment faire pour << si ce n'est que la declaration : ostream &operator<<(ostream & out,CChaine &obj) je ne sais pas si cette declaration est correct...

Est ce que quelq'un pourrait me donner une piste afin que je puisse completer ma methode? Je postes le code de mon constructeur si cela peut aider...
CChaine::(char*texte)
{
m_size=strlen(texte);
chaine=new char[m_size+1]
strcpy(chaine,texte)
}
Merci
mardi 2 novembre 2010 à 10:33:09 | Re : surcharge operator <<

CptPingu

Administrateur CodeS-SourceS
Je n'ai pas beaucoup de détail, mais je dirais que si "chaine" est ton attribut qui contient la chaine, alors le code devrait ressembler à cela:

Code C/C++ :
std::ostream& operator<<(std::ostream& out, const CChaine& obj)
{
  out << obj.chaine;
  return out;
}


PS: Évite les using namespace std, voir: [ Lien ]

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 2 novembre 2010 à 10:47:34 | Re : surcharge operator <<

elninodu42

Merci de ta réponse qui ressemble à ce que j'ai fait sauf que j'ai du mettre la fonction en friend étant donné que mon chaine était en privé. Par contre j'essai maintenant de surcharger un cin .

istream& operator<<(istream& in, const CChaine& obj)
{
in >> obj.chaine;
return in;
}

Le soucis c'est que si par exemple je tapes test, je n'ai que le t qui est recupérer??
mardi 2 novembre 2010 à 11:04:25 | Re : surcharge operator <<

CptPingu

Administrateur CodeS-SourceS
On évite généralement d'utiliser le mot clé friend. Ce que tu as fais est correcte, mais voici une autre solution qui se vaut aussi:

Tu fais une méthode publique dans ta classe:
Code C/C++ :
void CChaine::print(std::ostream& out)
{
  out << chaine;
}


puis tu fais un:
Code C/C++ :
std::ostream& operator<<(std::ostream& out, const CChaine& obj)
{
  obj.print(out);
  return out;
}


Pour ton deuxième problème c'est normal, tu dois faire un std::getline, et non un simple "std::cin >>".
http://www.cplusplus.com/reference/iostream/istream/getline/

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question
mardi 2 novembre 2010 à 11:18:02 | Re : surcharge operator <<

elninodu42

Oui j'avais remarqué que avec un getline le code fonctionnait. Mais la question que je me pose c'est de savoir si oui ou non il est possible de faire ce getline dans ma surcharge d'operateur et non dans le main??
mardi 2 novembre 2010 à 11:48:45 | Re : surcharge operator <<

elninodu42

c'est bon j'ai trouver une solution merci ;)


Cette discussion est classée dans : texte, chaine, declaration, surcharge, operator


Répondre à ce message

Sujets en rapport avec ce message

problème d'allocation mémoire dans ma classe [ par Bub325 ] Salut, j'ai un problème dans le code suivant au niveau de l'allocation mémoire de tmp.a = new char... dans operator+, et je ne sait pas du tout pourqu Récupérer une chaine dans un fichier texte [ par alncool ] En fait je dispose d'une classe avec trois attributs de type string. J'ai réalisé une surcharge de l'opérateur << pour pouvoir écrire dans un fichier Rechercher une chaine de caractère dans un texte [ par new0staff ] Bonjour!Je suis tout à fait nouveau au monde c++ et je commence par un gros travail....Je souhaite pour commencer, pouvoir rechercher un paramètre et rechercher chaine de caractere dans texte [ par melkiorlenecrarque ] Bonjour! Je dois rechercher une chaine de caractere dans un buffer, Quelle est la maniere la plus optimisée, sachant que je programme avec les api wi gestion de fichier [ par franc015 ] salut !!!voila je débute et je dois faire un prog. je dispose d'un fichier texte ( en fait une liste de fichier avec des retours chariot entre chaque Transformation d'un texte en chaine de caractère [ par davidbaum ] Bonjour,Je désire transformer un texte en une chaine de caratère comment dois je faire en c.Merci couleur d'un texte dans un buffer [ par dams6478 ] bonjour, voila je voudrai modifier la couleur d'un texte que j'insere dans un buffer texte voila la commande que j'utilise pour inserrer ce texte: gt fichie texte [ par cedric3456 ] bonjour je suis tres nul en c++ je debute pouvez vous m'aidez je cherche a faire 3 fonction sur Dev-C++ 4.9.9.2fonction :ecrire (nom_fichier,chaine_ch fonction qui retourne une chaine==>libération de la mémoire [ par tibob51 ] Bonsoir,J'ai eu besoin d'utiliser une fonction me retournant une chaine,après mes recherches sur cpp france j'ai trouvé la syntaxe suivante:char* Fonc allocation mémoire dans une classe [ par M_didi ] Bonjour, voilà je suis bloquée alors je vais mettre l'énoncé de tout ce que je veux faire. Je suis débutante. Voilà, je souhaite écrire une classe


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales