Cher journal,
J'ai un souhait très simple mais je ne sais pas si c'est réalisable..
Alors voilà en gros le truc :
J'ai surchargé les opérateurs de ma classe que nous allons appeler ici String
On ne peut pour l'instant que faire :
String chaine("coucou"); // OK
/////////////////////////////////////////////////////////
String chaine;
chaine="coucou"; //OK
/////////////////////////////////////////////////////////
en revanche :
String chaine="coucou"; //pas encore réussi a faire marcher
D'où ma question, est-ce possible de surcharger l'opérateur = dès l'initialisation ??
Merci d'avance
# bof
Posté par schyzomarijks . Évalué à 0.
Ensuite, il n'y a pas à mon avis d'intérêt d'utliser la sytaxe :
String chaine="coucou"; alors que String chaine("coucou"); est la bonne façon de faire.
On fait appelle à un constructeur de type String( char * ) et c'est comme cela que le c++ a été prévu.
Pourquoi chercher à faire se genre de chose ?
Tu ferais mieux de passer à la suite de ton programme. :-)
# Re: Surcharge d'opérateur dès l'initialisation en c++
Posté par Vincent Richard (site web personnel) . Évalué à 2.
Ce n'est pas l'opérateur = qui est appelé mais le constructeur qui prend un const char* en paramètre. En fait, c'est le même qui est appelé lorsque tu écris :
les deux syntaxes étant équivalentes...
Pour ton problème, je ne vois pas.
Peux-tu montrer le code de la classe ?
[^] # Re: Surcharge d'opérateur dès l'initialisation en c++
Posté par Vincent Richard (site web personnel) . Évalué à 3.
# Désolé
Posté par cho7 . Évalué à 0.
J'ai commencé par coder le operator= et donc jme suis apercu que ca ne marchais pas lors de l'initialisation, j'ai ensuite coté le constructeur String(char *) pour patienter, et je n'ai meme pas retesté. Effectivement depuis cette modif je peux mettre = dès l'initialisation.
Désolé pour le dérangement..
# fclc++ !
Posté par Bière Drabo . Évalué à 2.
Poste ton code sur fr.comp.lang.c++ et tu auras la réponse rapidement.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.