Voici mes codes (Vecteur.h, Vecteur.cpp, main.cpp).

Le problème est sur la fenêtre il m'affiche " [ 1 4565433] ". Pourquoi m'affiche t il ceci alors qu'il devrait m'afficher normalement " [ 1 1 ] " comme bien implémenter avec ce code "Coor[i] = A[i];" dans le constructeur de recopie avec A la composante que je mets en paramètre.

Merci


Vecteur.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef VECTEUR_H_INCLUDED
#define VECTEUR_H_INCLUDED
#include <iostream>
 
class Vecteur
{
    private:
    int N;
    int * Coor;
 
    public:
    Vecteur(int n, int * A);
    Vecteur(const Vecteur & V);
    ~Vecteur();
    int getN() const {return N;};
    void Vecteur::Affiche() const;
};
#endif // VECTEUR_H_INCLUDED
Vecteur.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include "Vecteur.h"
using namespace std;
 
//Constructeur
Vecteur::Vecteur(int n, int * A) : N(n)
{
    Coor=new int[N];
 
    if (A==NULL)
    {
        for (int i=0;i<N;i++)
        Coor[i] = 0;
    }
    else
    {
        for (int i=0;i<N;i++)
        Coor[i] = A[i];
    }
}
 
Vecteur::Vecteur(const Vecteur &V)
{
    N = V.getN();
    Coor=new int[N];
 
    for(int i=0; i<N; i++)
    Coor[i] = V.Coor[i];
}
 
Vecteur::~Vecteur()
{
    delete[] Coor;
}
 
void Vecteur::Affiche() const
{
    cout<<"[ ";
    for(int i=0;i<N;i++)
    cout<< Coor[i] <<" ";
    cout<<"]"<<endl;
}
main.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include "Vecteur.h"
using namespace std;
 
int main()
{
    int f = 1;
    Vecteur V(2,&f);
    V.Affiche();
}