 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Loïc Joly Guest
|
Posted: Thu Aug 25, 2005 5:18 pm Post subject: Surcharge d'opérateur avec uniquement des types standards. |
|
|
Bonjour,
Je sais qu'il est interdit d'écrire une surcharge, par exemple, de
l'opérateur + qui prenne en paramètre deux types de base comme int et long.
Par contre, je me pose la question de la légalité d'une écriture comme
celle-ci :
string operator+ (string s, int i);
J'aurais intuitivement pensé que ce n'était pas autorisé, mais je
n'arrive pas à trouver des éléments à ce sujet dans le standard. Qu'en
est-il ?
--
Loïc
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Thu Aug 25, 2005 6:59 pm Post subject: Re: Surcharge d'opérateur avec uniquement des types standard |
|
|
On Thu, 25 Aug 2005 19:18:55 +0200, Loïc Joly
<loic.actarus.joly (AT) wanadoo (DOT) fr>:
| Quote: | Par contre, je me pose la question de la légalité d'une écriture comme
celle-ci :
string operator+ (string s, int i);
|
std::string n'est pas un type de base, donc il n'y a pas de problème.
Par contre, il y a des chances pour que l'utilisation de ce machin
soit contre-intuitive, voire pose des problèmes.
Mieux vaut passer par les ostringstream.
|
|
| Back to top |
|
 |
kanze@gabi-soft.fr Guest
|
Posted: Fri Aug 26, 2005 7:26 am Post subject: Re: Surcharge d'opérateur avec uniquement des types standard |
|
|
Fabien LE LEZ wrote:
| Quote: | On Thu, 25 Aug 2005 19:18:55 +0200, Loïc Joly
[email]loic.actarus.joly (AT) wanadoo (DOT) fr[/email]>:
Par contre, je me pose la question de la légalité d'une
écriture comme celle-ci :
string operator+ (string s, int i);
std::string n'est pas un type de base, donc il n'y a pas de
problème.
|
Ce n'est pas dit. Dans le contexte d'une récherche dépendante
dans un template, par exemple, le compilateur ne le trouverait
que s'il est dans le namespace std. Et formellement, on n'a pas
le droit d'introduire de nouvelles fonctions dans std (même s'il
fort probable que ça marche dans ce cas-ci).
| Quote: | Par contre, il y a des chances pour que l'utilisation de ce
machin soit contre-intuitive, voire pose des problèmes. Mieux
vaut passer par les ostringstream.
|
Tout à fait. Même sans le problème ci-dessus, c'est une mauvaise
idée.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Fri Aug 26, 2005 7:52 am Post subject: Re: Surcharge d'opérateur avec uniquement des types standard |
|
|
On 26 Aug 2005 00:26:02 -0700, [email]kanze (AT) gabi-soft (DOT) fr[/email]:
| Quote: | que s'il est dans le namespace std
|
D'un autre côté, je me suis peut-être avancé en parlant de std. Si ça
se trouve, l'OP a créé une classe "string". Très mauvaise idée,
certes, mais il était de toutes façons parti pour la déconne avec son
"operator+"...
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|