Surcharge d'operateur

simachille Messages postés 79 Statut Membre -  
loupius Messages postés 789 Statut Membre -
Bonjour,
bonjour j"aimerais faire le somme de deux vecteurs en utilisant une surcherge d'operateur en C++ voici ma methode
[CODE]
vecteur vecteur::operator+(const vecteur& vecter)
{ int i;
int *tabl;
tabl=new int[Nblignes];

//les valeurs de vecteur1 sont chargés dans tabl

for(i=0;i<Nblignes;i++)
{
tabl[i]=tab[i];
}

// somme des elements de tabl et vecteur2
for(i=0;i<Nblignes;i++)
{
tabl[i]=vecter.tab[i];
}

//Création d'un type de retour
vecteur resultat (*tabl);
//retour du resulatt
return resultat;
}
[/CODE]

je sais pas si elle est correcte

l'instruction qui appele cette methode est

resultat=vecteur1+vecteur2;

quand je compile j'ai cette unique erreur

invalid operands of types `vecteur*' and `vecteur*' to binary `operator+'

3 réponses

loupius Messages postés 789 Statut Membre 148
 
vecteur vecteur::operator+(const vecteur& vecter) !!!
L'opérateur '+' est un opérateur dyadique et, dans ton cas déclaré en fonction membre; la bonne définition est donc:
vecteur vecteur::operator+(vecteur vecter)
Bonne continuation.
0
simachille Messages postés 79 Statut Membre
 
desolé mais j'ai toujours le meme probleme
0
loupius Messages postés 789 Statut Membre 148
 
Pourtant la déclaration indiquée est correcte.
D'autre part:
- tabl[i]=vecter.tab[i]; diot plutôt être 'tabl[i] += vecter.tab[i];'; mais alors pourquoi ne pas faire qu'une seule boucle avec comme corps: ' tabl[i] = tab[i] + vecter.tab[i];'.
- vecteur resultat (*tabl); je ne connais pas le constructeur mais à quoi correspond '*tabl' ? L'adresse du tableau étant simplement 'tabl'.
Bonne continuation.
0