Bonjour,

Pour l'énoncé je ne dois pas utilisé la class vector

Je possède un pointeur de tableau d'objet de 4 éléments au départ, qui doit être redimensionné en fonction de la lecture d'une db.

j'ai une fonction membre Add qui me permet d'incrément une variable membre de l'objet a chaque passage de boucle(ou lecture de db).

la classe
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
 
class Utilisateur
{
    private:
    int _numutilisateur;
    int _compteur;
    string _nom;
 
    public:
    Utilisateur();
    ~Utilisateur(){}
    Utilisateur operator++();
 
    void setNom(const string value){_nom = value;}
    void setNumUtilisateur(int value){_numutilisateur = value;}
    void Add(){++_compteur;}
 
    int Count()const {return _compteur;}
    int GetNumUtilisateur()const{return _numutilisateur;}
 
    string GetNom()const{return _nom;}
 
};
 
Utilisateur::Utilisateur():_compteur(0){}
 
Utilisateur Utilisateur::operator++()
{
    //++_compteur;
    Utilisateur user;
    user.Add();
    return user;
}
le traitement
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
 
int main(){
 
    int TailleAllocation = 4, ElementsUtilise = 0;
    int ElementsMaximunAutorise = TailleAllocation;
 
    //Représente une table de base de données
    string elements[7][2] = {{"1","Nom 1"},{"2","Nom 2"},{"3","Nom 3"},{"4","Nom 4"},{"5","Nom 5"},{"6","Nom 6"},{"7","Nom 7"}};
 
    //Declare un pointeur de tableau d'objet de classe utilisateur
    Utilisateur *pUsers = new Utilisateur[TailleAllocation];
 
    //Nombre elements dimension 1
    int dim1 = sizeof(elements) / sizeof(*elements);
 
    //Nombre elements dimension 2
    //int dim2 = sizeof(*elements) / sizeof(*(elements[0]));
 
    //Lecture de la table de base données pour le test
    for(int i =0; i < dim1; i++)
    {
        int index = ElementsUtilise++;
 
        pUsers[index].setNumUtilisateur(toInt(elements[i][0]));
        pUsers[index].setNom(elements[i][1]);
 
        pUsers->Add();
 
        //Utilise la surcharge d'operateur
        //++pUsers;
 
        if(ElementsUtilise == ElementsMaximunAutorise)
        {
            //Declare un pointeur de tableau d'objet utilisateur
            Utilisateur *pTempo = new Utilisateur[ElementsMaximunAutorise+TailleAllocation];
 
            //Effectue une copie
            for(int IndiceCopie = 0; IndiceCopie < ElementsMaximunAutorise; IndiceCopie++)
            {
                pTempo[IndiceCopie] = pUsers[IndiceCopie];
            }
 
            delete[] pUsers; //Supprime le pointeur de tableau
            pUsers = pTempo;
            ElementsMaximunAutorise+=TailleAllocation;  //Nouvelle Taille
        }
    }
 
    //Affiche les données
    for(int i = 0; i < pUsers->Count(); i++)
    {
        cout << "[" << pUsers[i].GetNumUtilisateur() << "] [" << pUsers[i].GetNom() << "] " << &pUsers[i] << endl;
    }
 
    return 0;
}
jusqu ici tout cela fonctionne normalement.
Mais lorsque je cherche a surchargé un opérateur++ pour incrémenté, rien a faire cela ne fonctionne pas.

merci