[Débutant]Surcharge opérateur +
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 :
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38
| 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+ (char ad_dest); // 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à ou il faut que je mette char *ad_dest ?
Code:
message operator+ (char ad_dest); // surcharge de l'opérateur +
Ma fonction de surcharge est la suivante (est-ce bon ?) :
Code:
1 2 3 4 5
| message message::operator +(char ad_dest)
{
message msg;
msg.adresse_destinataire = adresse_destinataire + ad_dest;
} |
En faite, je dois mettre plusieurs adresses email dans "adresse_destinataire" et je fais çà comme çà dans mon main() :
Code:
1 2 3
| char tmpEnc[100];
tmpEnc = tmpEnc + getDestinataire(); setDestinataire(tmpEnc); |
Que dois-je corriger pour que çà aille :?:
Merci d'avance car j'avance vraiment à pas de fourmis :cry:
Une dernière petite erreur...
Bon bah voilà, tout est changé... Me reste juste une petite erreur là :
Code:
1 2 3 4
| message message::operator +(const std::string& ad_dest) const
{
return msg(..., adresse_destinataire + ad_dest, ...);
} |
A la ligne du return...
Citation:
error C2143: syntax error : missing ')' before '...' \dossier1.cpp
error C2059: syntax error : ')' \dossier1.cpp