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

3 réponses

  1. 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
  2. simachille Messages postés 79 Statut Membre
     
    desolé mais j'ai toujours le meme probleme
    0
  3. 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