Language c++

Fermé
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 3 avril 2010 à 15:31
mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 - 4 avril 2010 à 18:52
salut,

le code suivant est executable mais il m'affiche un resulta qui n'est pas juste

fichier "vecteur.h"
#include <iostream.h>

using namespace std;

class vecteur
{

int taille;
int max;
int *tab;
public :
vecteur(int n=10):max(n),taille(0)
{
tab=new int[n];
}
~vecteur(){delete[]tab;}
vecteur(const vecteur &source)
{
max=source.max;
taille=source.taille;
tab=new int[max];
for(int i=0;i<taille;i++)
tab[i]=source.tab[i];
}

void afficher();
void ajouter(int);

vecteur somvect(vecteur);
};


fichier "vecteur.cpp"

#include"vecteur.h"


void vecteur::afficher()
{
for(int i=0;i<taille;i++)

cout<<tab[i]<<"|";
cout<<endl;
}

void vecteur::ajouter(int x)
{
if(taille<max)
tab[taille++]=x;
}


vecteur vecteur::somvect(vecteur v)
{
vecteur som(taille);

for(int i=0;i<taille;i++)
som.ajouter(tab[i]+v.tab[i]);
return som;
}


fichier "main.cpp"

#include"vecteur.h"
int main()
{

vecteur v1,v2,v3;
int n,x;
cout<<"nombre de valeur ?";
cin>>n;
cout<<"remplir de v1\n";
for(int i=0;i<n;i++)
{
cout<<"donner une valeur :";
cin>>x;
v1.ajouter(x);
}
cout<<"remplir de v2\n";
for(int i=0;i<n;i++)
{
cout<<"donner une valeur :";
cin>>x;
v2.ajouter(x);
}

v3=v1.somvect(v2);
cout<<"v1+v2=";v3.afficher();



return 0;
}



voila un exemple des valeur entrés

le valeur de "V1"

2 3 4

les valeur de "V2"

5 6 7

V1+V2=0|9|11


le probleme c 'est au nivaeu la valeur 0 noramalement il m'affiche V1+V2=7|9|11


j'ai teste plusieurs cas mais quand je fait eliminer le destructeur il m'affiche un resultat juste



merci d'avance

1 réponse

mb42 Messages postés 432 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 14 janvier 2014 7
4 avril 2010 à 18:52
je suppose que je dois définir l'opérateur d'affectation

pouvez m'aidez
0