question sur le temps d'execution des operateurs
Le
Fred
j'ai vu qu'il etait coutume de definir les operateurs avec une valeur de
retour, meme pour certains operateurs ou cela n'etait pas forcement tres
utile.
example
const MonType& operator=(conts MonType& maValeur);
alors que l'on peut aussi faire
void operator=(conts MonType& maValeur);
Donc
Mes questions :
si on fait juste "a=b;" y a t'il une difference dans le temps d'execution
des 2 operateurs?
si on fait "a=b=c=d=e=f=g;" y a t'il une difference entre les 2 operateurs?
qui est "le plus fort"
f=g;
e=f;
d=e;
c=d;
d=b;
a=b;
ou
a=b=c=d=e=f=g;
ou est-ce que cela n'apporte juste qu'une souplesse dans l'ecriture?
Fred
retour, meme pour certains operateurs ou cela n'etait pas forcement tres
utile.
example
const MonType& operator=(conts MonType& maValeur);
alors que l'on peut aussi faire
void operator=(conts MonType& maValeur);
Donc
Mes questions :
si on fait juste "a=b;" y a t'il une difference dans le temps d'execution
des 2 operateurs?
si on fait "a=b=c=d=e=f=g;" y a t'il une difference entre les 2 operateurs?
qui est "le plus fort"
f=g;
e=f;
d=e;
c=d;
d=b;
a=b;
ou
a=b=c=d=e=f=g;
ou est-ce que cela n'apporte juste qu'une souplesse dans l'ecriture?
Fred

Poser une question


Faut mesurer. Rien d'important a priori.
Le deuxieme n'est pas permis.
Qu'entends-tu par "le plus fort"?
On rencontre aussi
MonType& operator=(MonType const&);
qui a l'avantage d'etre celle utilisee quand c'est le compilateur qui
la genere.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++...index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
ou est le problème? moi il me semble que le const permet de garder un peu
de lisibilité et d'eviter les confusions...
class Foo
{
public:
const Foo & operator=(const Foo &other) {
return *this;
}
void f() const
{}
void g()
{}
};
int main()
{
Foo a, b,c;
a=b;
a=b=c;
// on peut pas dire que ça soit une tres bonne pratique :oD
(a=b=c).f();
(a=b=c).g();
}
--
Ne perdez pas de vue qu'un programme qui plante est d'une utilité quasi nulle,
ce qui est loin d'être incompatible avec la notion d'Art.
Euh, tu pourrais expliquer un peu ou reformuler, stp (je comprends pas très
bien ta phrase) ?
Chris
Avec le const, a=b=c devient interdit.
--
Tout sur fr.* (FAQ, etc.) : http://www.usenet-fr.net/fur/
et http://www.aminautes.org/forums/ser...blefr.html
Archives : http://groups.google.com/advanced_group_search
http://www.usenet-fr.net/fur/usenet...senet.html
De principe et par goût, je suis d'accord avec toi. Mais le langage
permet des choses comme :
int a ;
int&
f()
{
return a = 1 ;
}
Alors, le principe du moindre surprise veut que tes classes à toi le
permet aussi.
--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, Tél. : +33 (0)1 30 23 45 16