tres simple (surdef doperateur) - C++ - Programmation
Marsh Posté le 09-07-2003 à 18:21:37
normal, il faut que pour operator+, this soit const. et il manque plein de const partout d'ailleurs
en regle général, on evite de surcharger de la maniere que tu as suivi: je m'explique: on surcharge la fonction membre operator+= et apres on surcharge operator+ globalement (ni friend ni rien) en utilisant operator+=
Marsh Posté le 09-07-2003 à 18:31:08
Code :
|
voila pour operator +=
pour operator + je vois pas trop
et pour les const jen ai rajoute pour ostream dans la surdef de << pour les autres je vois pas trop
friend ostream& operator << (ostream&,const Complex& );
Marsh Posté le 09-07-2003 à 18:34:20
Code :
|
et voilou!
edit: tu ferais bien d'utiliser des double à la palce d'int et peut etre aussi un unique constructeur avec des paramètre par défaut
Marsh Posté le 09-07-2003 à 18:53:59
merci bien pour toutes ces reponses
Code :
|
jarrive pas a virer le Complex::Complex sinon il bloque sur la construction de c3 -> Complex c3;
et si je le laisse comme ca il me fait 'Complex::Complex' : ambiguous call to overloaded function
sinon c mieux de surdef += meme si on lutilise pas , c un principe c ca ???
Marsh Posté le 09-07-2003 à 19:16:13
ut me lsi des fois? tu connais le copier/coller
les valeurs par défaut tu connais? et vire moi ces int.
Marsh Posté le 09-07-2003 à 20:13:25
++Taz a écrit : ut me lsi des fois? tu connais le copier/coller |
ouais mais bon pas suffisament aparament c pour ca que je demande de l'aide....
si je savait tout faire tout seul comme un grand jviendrai pas ici
Code :
|
ca ca marche... mais bon ya ptet moyen de faire un seul constructeur ???
Complex::Complex(double r,double i=r)
on peut pas faire, ya moyen de resoudre le probleme autrement ???
Marsh Posté le 09-07-2003 à 20:19:15
et avec ca maintenant tu arrives a faire
[cpp]
Complex C(3,4);
Complex D = C+14; ????
Marsh Posté le 09-07-2003 à 20:22:34
essayes
Code :
|
Marsh Posté le 09-07-2003 à 20:25:00
++Taz a écrit : essayes
|
je pense que si il va avec ca au cours , on va lui dire qu'il n'est pas sencé savoir
Marsh Posté le 09-07-2003 à 21:31:01
ReplyMarsh Posté le 10-07-2003 à 08:07:27
++Taz a écrit : normal, il faut que pour operator+, this soit const. et il manque plein de const partout d'ailleurs |
Hum la je dis pas bete =) C'est tout simple et tout propre.
Marsh Posté le 09-07-2003 à 18:14:36
voila j'ai pense a faire
friend Complex operator+(int,Complex& )
mais bon ya peut etre plus propre comme code.
dans ce cas pourquoi ne pas mettre
friend Complex operator+(Complex&,int) aussi a la place de
Complex(int) ????
Message édité par red faction le 09-07-2003 à 18:18:34