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

  FORUM HardWare.fr
  Programmation

  [c++] pitite question sur la surcharge de "+"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c++] pitite question sur la surcharge de "+"

n°81925
art_dupond
je suis neuneu... oui oui !!
Posté le 16-12-2001 à 15:28:27  profilanswer
 

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]


---------------
oui oui
mood
Publicité
Posté le 16-12-2001 à 15:28:27  profilanswer
 

n°81926
chrisbk
-
Posté le 16-12-2001 à 15:30:49  profilanswer
 

A c'est this
 
 
C sera ce que tu retournes
 
si c'est pas clair :
 
c =  a + b <=> c = a.addition(b);

n°81927
kadreg
profil: Utilisateur
Posté le 16-12-2001 à 15:30:58  profilanswer
 

a c'est this.  
 
pour atteindre c, c'est = qu'il faut surcharger.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°81942
art_dupond
je suis neuneu... oui oui !!
Posté le 16-12-2001 à 16:13:08  profilanswer
 

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:


---------------
oui oui
n°81952
LeGreg
Posté le 16-12-2001 à 17:13:01  profilanswer
 

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

n°81954
verdoux
And I'm still waiting
Posté le 16-12-2001 à 17:21:28  profilanswer
 

On peut aussi utiliser des opérateurs amis:
maclasse operator+(const maclasse&, const maclasse&)

n°82008
art_dupond
je suis neuneu... oui oui !!
Posté le 17-12-2001 à 02:01:49  profilanswer
 

merci pour la pitite leçon :jap:  
 
 
 
ps : En fait, c'est un truc pour l'école, et je dois faire +, = et +=


---------------
oui oui

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [c++] pitite question sur la surcharge de "+"

 

Sujets relatifs
[C++] Question de newbie (j'ai honte là...)[Math] Question sur les matrices
je repose ma question : comment on fait un BIP en CPetite question en ADA.
c++ pitit question urgente !!! PLZ[VB] [Path] Petite question sur le path d'une base de donnée
ch'tite question inhabituelle ...[PHP] Petite question : ORDER BY 2 trucs ??? C'est possible ?
[C/C++] question sur les macroPetite question flash vers screen saver ??
Plus de sujets relatifs à : [c++] pitite question sur la surcharge de "+"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR