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;
} |
Partager