Surcharge d'operateur

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+'
Configuration: Windows 7 Internet Explorer 7.0

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. 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.
    1. 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.