Salut à tous, je viens d'étudier le langage c++ et j'ai un mini projet dont je suis appeler à simuler une boite mail , j'ai plusieurs class dans le programme à savoir class Mail, class BoiteReception , class ElementsEnvoyes , class Compte , class ListeCompte .
Pour vous expliquer mon problème , je suppose que je dois vous présentez la définition au moins des deux classes Compte et ListeCompte :

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
class Compte
{
      string           Login ;
      string           Password ;
 
      vector < Contact > mes_contacts ;
 
   public:
          BoiteReception   Recu ;
          ElementsEnvoyes  Envoyes ;
          Compte ( string , string );
          Mail Nouveau_mail(string Dest , string objet, string continu); //
          void Envoi_mail ( string Dest , string objet, string continu, ListeCompte )   ;
          void Ajouter_contact ( string ad , string N_P="" , int Mob = 0 , string Descrip = "" ); //
          void Supprimer_contact ( string ); //
          bool Chercher_contact ( string );  //
          void ChangePassword( string, string , string );
          void Afficher (); //
          void putLogin(string);
          string getLogin();
          string getPassword();
 
};
 
class ListeCompte 
{
 
       vector < Compte *> ListeDesComptes ;
 
      public :
 
             ListeCompte();
 
 
             void Ajouter_Compte ( Compte *);
             Compte* Chercher_Compte ( string ) ;
             void Afficher();
};
Au début lorsque j'ai conçu le programme , j'avais pas l'intention de manipuler des fichiers , maintenant j'ai un besoin , lors de la phase d'authentification , je vais supposer que les login et mots de passe de mes users sont stockés dans un fichiers , et puisque mon programme est conçu de manière à ce que tous les comptes mail existants doivent être stockés dans ma liste , donc au lancement du programme je dois lire les login et mots de passe du fichier , créer un nombre de Comptes ( pour moi inconnu ) avec les même paramètres récupérés du fichier , et c là que je suis bloqué , voici mon le code utilisé dans le main :
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
ListeCompte Liste ;
string login, passwd ;
 
ifstream monFlux;
monFlux.open("E:/C++/users.txt");
 
if(monFlux.is_open())    //On teste si tout est OK.
  {
     vector <Compte *>::iterator it=Liste.ListeDesComptes.begin();
      while ( !monFlux.eof() )
      {
 
         monFlux >> login ;
         monFlux >> passwd ; 
         Compte  C ( login , passwd );  // c'est ici mon pb  :?
         Liste.Ajouter_Compte(&C);
 
 
 
 
 
      }           
 
}
monFlux.close();
cout <<"Users List : " << endl;
cout <<"------------" << endl;
Liste.Afficher(); // la méthode Afficher ici afficher seulement le login de chaque Compte
 
 
system("pause");   
 
return 0;    
}
étant donné que le fichier contient :
user1 1111
user2 2222
user3 3333


Le programme m'affiche :
Users Liste:
------------
user3
user3
user3


j'ai compris que dans la boucle while chaque fois que je crée la variable Compte C avec deux nouveaux paramètres , les anciennes valeurs seront donc écrasées et ce pour cela qu'au final je ne trouve dans ma liste que des comptes avec les derniers paramètres
y a il une solution sans avoir à changer la structure de mes classes ??

Merci d'avance