Surcharge d'operateur
simachille
Messages postés
79
Statut
Membre
-
loupius Messages postés 789 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+'
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+'
A voir également:
- Surcharge d'operateur
- Opérateur de réseau mobile - Guide
- 06 44 67 quel opérateur - Forum Mobile
- Surcharge antenne ✓ - Forum TV & Vidéo
- 0668 quel opérateur ✓ - Forum Mobile
- 0644 quel opérateur ✓ - Forum Mobile
3 réponses
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.
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.
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.
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.