Accueil > Forum > > > > [Débutant]Surcharge opérateur +
[Débutant]Surcharge opérateur +
dimanche 4 décembre 2005 à 17:58:02 |
[Débutant]Surcharge opérateur +

Geolem
|
Bonjour tout le monde !
Je n'arrive pas à surcharger mon opérateur +... En faite, il faudrait que j'applique l'opérateur + à un objet de Message et à une chaine de caractère...
J'ai donc ma classe message : class message{ private: enum { n = 10 }; static int cpt_id_message; // compteur nombr id déjà utilisé int num_id_message; // num id du message char *adresse_expediteur; char *adresse_destinataire; bool urgent; bool mess_lu; char *sujet; char *texte;
public: message (void); // constructeur par défaut message (const message & mess); // constructeur de copie message (int num, char *ad_exp, char *ad_dest, bool urg, bool msg_lu, char *sjt, char *txt); ~message (void) // Destructeur class message { delete []adresse_expediteur; delete []adresse_destinataire; delete []sujet; delete []texte; } message operator+ (const char *ad_dest) const; // surcharge de l'opérateur + void affMessage (void); // afficher le message void encMessage (void); // entrer le message void checkFormatMsg (char *tmpEnc); // vérifie la présence d'un " @ " void setExpediteur (char *tmpEnc) { adresse_expediteur = new char[strlen(tmpEnc)+1]; strcpy(adresse_expediteur,tmpEnc); } void setDestinataire (char *tmpEnc) { adresse_destinataire = new char[strlen(tmpEnc)+1]; strcpy(adresse_destinataire,tmpEnc); } char *getDestinataire (void) { return adresse_destinataire; } };
Est-ce que çà c'est juste çà, déjà ? : message operator+ (const char *ad_dest) const; // surcharge de l'opérateur +
Ma fonction de surcharge est la suivante (est-ce bon ?) : message message::operator +(const char* ad_dest) const { message msg; msg.adresse_destinataire = adresse_destinataire + ad_dest; return msg; }
En faite, je dois mettre plusieurs adresses email dans "adresse_destinataire" et je fais çà comme çà dans mon main() (=> qui doit être surment pas bon mais partout, les exemples pour la surcharge de l'opérateur + se fait avec des chiffres et non des chars ) : strcpy(tmpEnc,tmpEnc + getDestinataire()); setDestinataire(tmpEnc); // surcharge de l'opérateur
Voilà, je n'arrive vraiment pas à faire ces choses on ne peut plus basic .
Merci d'avance.
|
|
dimanche 4 décembre 2005 à 18:04:44 |
Re : [Débutant]Surcharge opérateur +

Joky
|
On concatène avec strcat( ... ) if(!Meilleur("Joky")) return ERREUR;<
|
|
dimanche 4 décembre 2005 à 18:16:16 |
Re : [Débutant]Surcharge opérateur +

Geolem
|
Je dois surcharger l'opérateur + et pas faire un simple strcat  . Ou alors tu voulais dire remplacer le strcpy par strcat dans mon main() ? (parce que çà ne va pas  ).
|
|
dimanche 4 décembre 2005 à 18:21:34 |
Re : [Débutant]Surcharge opérateur +

vecchio56
|
message operator+ (const char *ad_dest) const;
Oui, ca m'a l'air d'être bon. L'implémentation se fait avec strcat. Sinon ca récursive
|
|
dimanche 4 décembre 2005 à 18:22:06 |
Re : [Débutant]Surcharge opérateur +

Joky
|
Réponse acceptée !
message message::operator +(const char* ad_dest) const { message msg; msg.adresse_destinataire = adresse_destinataire + ad_dest; return msg; } strcpy(msg.adresse_destinataire, strcat(adresse_destinaire, ad_dest)); Attention au buffer overflow; if(!Meilleur("Joky")) return ERREUR;<
|
|
mardi 6 décembre 2005 à 16:55:57 |
Re : [Débutant]Surcharge opérateur +

Geolem
|
Et dans mon main(), je dois faire quoi pour ajouter deux chaines de caractères l'une à l'autre ? tmpEnc = adresse_destinataire + tmpEnc; // tmpEnc étant un tableau de char contenant qlq chose dedans. C'est juste çà ? Parce que comme erreur j'ai : Error C2110: '+' : cannot add two pointersMerci...
Geolem
|
|
mardi 6 décembre 2005 à 17:02:23 |
Re : [Débutant]Surcharge opérateur +

Joky
|
char Buff[512]; char *Mess = "Salut "; strcpy(Buff, Mess); strcat(Buff, "c'est moi la concaténation !"); MessageBox(0, Buff, 0, 0x40); if(!Meilleur("Joky")) return ERREUR;<
|
|
mardi 6 décembre 2005 à 17:27:15 |
Re : [Débutant]Surcharge opérateur +

Geolem
|
Bah... ou est le + qui sert de surcharge ?
Geolem
|
|
mardi 6 décembre 2005 à 20:56:34 |
Re : [Débutant]Surcharge opérateur +

vecchio56
|
Dans le main, on utilise l'opérateur +, c'est le but de la surcharge. message m = ...; m = m + "chaine";
Tu dois savoir qu'en général, on écrit d'abord l'opérateur +=, et on l'utilise dans operator+
Comme dit Joky, il faut bien utiliser strcat à un moment donné.
message message::operator +(const char* ad_dest) const { message msg = *this; strcat(msg.adresse_destinataire, ad_dest); return msg; }
Pourquoi ne pas utiliser std::string, qui fait tout ca un peu mieux que strcat?
|
|
Cette discussion est classée dans : message, void, adresse, char, tmpenc
Répondre à ce message
Sujets en rapport avec ce message
PROBLEME NETSEND [ par zzzzzz ]
En fait j'essaye d'envoyer un message par la fonction net send via internet a ordi qui posssede xp. Si je mjet mon ip ca marche et si je met l'ip de q
regardez ma source HELP [ par asnow ]
BonjourJe debute en C. j'ai voulu apprendre à enregistrer des données dans un fichier, ca a donné ce code .Si vous pouviez me donner des recommandatio
appel de fonctions [ par lysane ]
pour alléger le code j'ai créer un fichier fonctions.cpp ou je met plusieures fonctions qui seront untilées dans une autre classe lors d'un ifexemple:
Memory Pool [ par guiguikun ]
Bonjour,j'ai téléchargé la partie du code source de Quake3 releasé par ID Software par curiosité.Je l'ai lu pour voir un peu comment le jeu fonctionna
probleme sur une classe [ par NerOcrO ]
Voici mon code :#include #include class Chanson //classe Chanson{ public: int Duree; char TypeDeFichier[3], Auteur[50], Titre[50], Interprete[50
petite question mais ke j'ai besoin [ par superoi ]
bon \jour je sais que c'est con mais j'ai vraiment besoin de savoir c'est pour savoir si ca existe en c ca : long (*f)(void)(char *str); et est ce
pb eof en C++ le dernier element est lu 2 fois :( [ par panini21 ]
salut a tousvoila g un prog qui permet de creer une 'bibliotheque de jeux'a savoir :les renseignement du jeu sont le prix, le nom, la descriptiopn et
Fonction *char [ par moustachu ]
Bonjour,Je suis en train de faire évoluer une appli qui a pas de paramétrage à sortir de l'appli. Tout est codé en dir et ça craint assez (ex : strcpy
chui en BUGG depuis et sans reponse [ par louatiamin ]
pour ceux ki ne connaisse pas TC++ 3.0(sous dos) et ne connaisse rien sur les librairie statique ou bien le mode real 16bits c est vraiment unitile d
Conversion d'adresse en char ? [ par supergrey ]
Bonjour, voila mon probleme:Dans mon programme j'ai un tableau: VOID* szTemp[256]qui contient des trucs du genre: 0xcccccc59 0xcc
Livres en rapport
|
Derniers Blogs
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : WIN APIRE : WIN API par racpp
Cliquez pour lire la suite par racpp WIN APIWIN API par omarino_007
Cliquez pour lire la suite par omarino_007
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|