Surcharge d'operateur

Fermé
simachille Messages postés 64 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 4 octobre 2011 - 28 déc. 2009 à 07:43
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 28 déc. 2009 à 12:56
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 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
28 déc. 2009 à 11:11
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 64 Date d'inscription jeudi 2 avril 2009 Statut Membre Dernière intervention 4 octobre 2011
28 déc. 2009 à 11:58
desolé mais j'ai toujours le meme probleme
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
28 déc. 2009 à 12:56
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