Operateur+ c++

Fermé
vincent.jerem Messages postés 29 Date d'inscription lundi 12 janvier 2009 Statut Membre Dernière intervention 6 mars 2010 - 29 sept. 2009 à 10:53
Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 - 29 sept. 2009 à 11:16
Bonjour,
Voilà je rencontre un problème lorsque je redéfinis l'opérateur+ pour deux vecteurs.
Par exemple pour l'addition de 2 vecteurs :

v3 = v1 + v2, il ne me renvoie que la valeur de v1.
Et inversement, lorsque je fais v3 = v2 + v1, il ne me renvoie que la valeur de v2.
Voila le code de l'opérateur +:

vecteur& vecteur::operator+(const vecteur& vect){

for(int i=0;i<taille;i++){
tab[i]+vect.tab[i];
}
return *this;
}

et l'opérateur = :

void vecteur::operator=(vecteur vect){
taille=vect.taille;
for (int i=0; i<taille; i++){
tab[i]=vect.tab[i];
}
}

Merci pour votre aide

1 réponse

Zempachi Messages postés 7472 Date d'inscription vendredi 14 octobre 2005 Statut Contributeur Dernière intervention 5 juin 2020 906
29 sept. 2009 à 11:16
Salut,
il nous faudrait la classe vecteur pour t'aider plus efficacement.
Sinon dans l'absolu, il est fortement conseillé de faire un constructeur de recopie, surtout quand on veut s'amuser avec l'opérateur =.
Pour la surcharge d'opérateur, la principale problématique est de créer les zones mémoires (== pointeur) pour la nouvelle instance.

0