Problème accès à une méthode d'un vecteur de classe

Problème accès à une méthode d'un vecteur de classe - C++ - Programmation

Marsh Posté le 30-04-2008 à 16:07:11    

Bonjour à tous,
Je tiens d'abord à m'excuser si la question est "bête" mais je débute en C++.
 
J'ai créé un vecteur de classe.
 
Voici les classes :

Code :
  1. class Automate
  2. {
  3. private:
  4.     std::vector<Etat> m_tab_etats;
  5.     Alphabet m_alphabet;
  6. public:
  7.     Automate();
  8.     void init_alphabet(int alphabet);
  9.     void ajout_etat(int numero);
  10.     int etat_existant(int numero);
  11.     ~Automate();
  12. };


 

Code :
  1. class Etat
  2. {
  3. private :
  4.     bool m_est_initial;
  5.     bool m_est_final;
  6.     int m_numero;
  7.     Liste_transitions m_liste_transition;
  8. public :
  9.     Etat();
  10.     Etat(int);
  11.     ~Etat();
  12.     int getNum();
  13. };


 
Et je tente d'accéder à la méthode getNum() comme ceci :

Code :
  1. int Automate::etat_existant(int numero)
  2. {
  3.   for(vector<Etat>::iterator i = m_tab_etats.begin(); i != m_tab_etats.end();++i)
  4.   {
  5.     cout << m_tab_etats[i].getNum() << endl;
  6.     system("PAUSE" );
  7.   }
  8. }


 
Pourriez vous m'indiquer ce qui ne vas pas.
 
 
Merci beaucoup d'avance

Reply

Marsh Posté le 30-04-2008 à 16:07:11   

Reply

Marsh Posté le 30-04-2008 à 16:22:37    

c'ets quoi l'erreur en question :[

Reply

Marsh Posté le 30-04-2008 à 16:27:25    

Soit tu passes par un iterator, et tu accedes par *i

Code :
  1. for(vector<Etat>::iterator i = m_tab_etats.begin(); i != m_tab_etats.end(); ++i)
  2.    {
  3.      cout << (*i).getNum() << endl;
  4.      system("PAUSE" );
  5.    }
 

Soit tu passes par un indexeur, et tu accedes par m_tab_etats[i]

Code :
  1. for(vector<Etat>::size_type i = 0; i != m_tab_etats.size(); ++i)
  2.    {
  3.      cout << m_tab_etats[i].getNum() << endl;
  4.      system("PAUSE" );
  5.    }
 

Mais je ne suis pas sur que ce soit une bonne habitude de melanger les deux styles...
A+,


Message édité par gilou le 30-04-2008 à 16:29:18

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 30-04-2008 à 18:55:15    

;)  Merci pour la réponse.  C'est vrai que le mix des deux ne marche pas vraiment ^^.
 
J'ai une autre question. Je la pose ici où je recréer un topic ?

Reply

Marsh Posté le 30-04-2008 à 19:00:51    

IMHO, ou bien tu crees un autre topic, ou bien tu la poses ici, et tu changes le titre du topic pour refleter la question en cours.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed