Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2555 connectés 

 


Dernière réponse
Sujet : [c++] pitite question sur la surcharge de "+"
art_dupond merci pour la pitite leçon :jap:  
 
 
 
ps : En fait, c'est un truc pour l'école, et je dois faire +, = et +=

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
art_dupond merci pour la pitite leçon :jap:  
 
 
 
ps : En fait, c'est un truc pour l'école, et je dois faire +, = et +=
verdoux On peut aussi utiliser des opérateurs amis:
maclasse operator+(const maclasse&, const maclasse&)
LeGreg attention operateurs +, -, * , / etc..
sont a utiliser avec parcimonie.
par exemple si t'as le choix
utilise plutot += -= *= et /=
 
pourquoi cela?
=> simplement parce que dans le corps
de ta fonction +, tu vas creer un objet
intermediaire que tu vas envoyer
comme resultat. Et parfois la creation
de cet objet intermediaire est couteuse
alors que tu es plutot habitue a ce que
l'operation + soit la moins couteuse
des operations.
Donc a la place de :

Code :
  1. MaClasse c;
  2. c = a + b;


Mieux vaut ecrire si c'est possible:

Code :
  1. MaClasse c(a);
  2. c += b;


 
L'ideal serait evidement

Code :
  1. c.sum(a,b);


avec a et b passes en references constantes..
 
bon je suis d'accord que dans 90%
des cas c'est de la suroptimisation
mais 10% des cas, si c'est critique
c'est plutot bon a savoir.
 
A+
LEGREG

art_dupond ah, oki, j'avais pas compris ca comme ca.
 
J'avais bien surchargé =, mais je pensais que le this, ca donnait le truc le plus à gauche.
 
 
ben merci en tout cas :jap:
kadreg a c'est this.  
 
pour atteindre c, c'est = qu'il faut surcharger.
chrisbk A c'est this
 
 
C sera ce que tu retournes
 
si c'est pas clair :
 
c =  a + b <=> c = a.addition(b);
art_dupond voili, quand on a  
 
c = a + b
 
Classe_où_je_surcharge Classe_où_je_surcharge:: operator+(const Classe_où_je_surcharge & b)
 
 
comment atteindre a ?
 
b, c'est b;
c, je crois que je peux l'atteindre avec *this.
 
Mais a, je sais pas comment je dois faire.
 
 
 
help, quelqu'un plz :).
 
 
:jap:

 

[edtdd]--Message édité par art_dupond--[/edtdd]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)