erreur lors de l'afichage
salut,
le code suivant est executable mais il m'affiche un resulta qui n'est pas juste
fichier "vecteur.h"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#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"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#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"
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#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 d'execution
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