Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1851 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Problème de class et d'attribut

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de class et d'attribut

n°1636448
Yru
Posté le 04-11-2007 à 17:15:14  profilanswer
 

Bonjour,
Je sais que mon titre de sujet n'est pas terrible mais bon, l'important c'est que tout soit bien compris ici  :)  
En faite j'ai un problème de transmission de variable entre class. Je veux récupérer une variable appartenant à une class dans une autre.
Jusqu'ici aucun problème, sauf que je ne récupère que la valeur initialisé dans le constructeur, quand ma variable est modifié dans une méthode, je ne récupère pas cette valeur dans le l'autre class !  
Du code sera peut-etre plus parlant :
 

Code :
  1. /* Fichie .h */
  2. /* Class PersoG hérite de la class player */
  3. class C_PersoG : public C_Player
  4. {
  5.     private:
  6.     public:
  7.         C_PersoG();
  8.         ~C_PersoG();
  9.         void Commandes(Uint8 * keys);
  10.         /* + int arme de la class mère */
  11. };
  12. /* Fichier .cpp */
  13. C_PersoG::C_PersoG()
  14. {
  15.     arme = 1;
  16. }
  17. /* Si on press 2 l'arme vaut 2 */
  18. void C_PersoG::Commandes(Uint8 * keys)
  19. {
  20.     if(keys[SDLK_2])
  21.     {
  22.         arme = 2;
  23.     }
  24. }
  25. /*  --------------------------------------------------------------- */
  26. /* Fichier .h */
  27. class C_BoardG : public C_Board
  28. {
  29.     private:
  30.         C_PersoG PersoG;
  31.     public:
  32.         C_BoardG();
  33.         ~C_BoardG();
  34.         void RecupereArme();
  35.         /* int Arme de la class mère */
  36. };
  37. /* Fichier .cpp */
  38. /* On récupère la valeur de l'arme */
  39. void C_BoardG::RecupereArme()
  40. {
  41.     Arme = PersoG.arme;
  42. }
  43. /* + Main */
  44. /* Problème seul la valeur de l'arme initialisé dans le constructeur est renvoyé, quand
  45. la touche 2 est pressé la valeur 2 n'est pas renvoyé */


 
J'ai aussi essayé avec des returns mais j'ai le même problème.
 
 
Merci d'avance.
A++

mood
Publicité
Posté le 04-11-2007 à 17:15:14  profilanswer
 

n°1636459
KangOl
Profil : pointeur
Posté le 04-11-2007 à 17:33:09  profilanswer
 

oh, des nombres magiques !!
 
 
 
bon, ca mis de coté, tu l'appelles comment la méthode "Commandes" ?

n°1636460
KangOl
Profil : pointeur
Posté le 04-11-2007 à 17:34:09  profilanswer
 

et je parie que tu confonds class et objet

n°1636462
Yru
Posté le 04-11-2007 à 17:38:14  profilanswer
 

Comment je l'appelle ? eh ben comme ça (dans le main) :

Code :
  1. PersoG->Commandes(keys);


 
Mhh peut etre, je suis entrain de lire mon bouquin sur le c++ donc je connais pas tous hein ^^


Message édité par Yru le 04-11-2007 à 17:38:36
n°1636463
Yru
Posté le 04-11-2007 à 17:39:33  profilanswer
 

Mhh ah ouais je crée...  
    C_BoardG *BoardG;
    BoardG = new C_BoardG();
C'est ca non ?

n°1636467
IrmatDen
Posté le 04-11-2007 à 17:44:51  profilanswer
 

M'est avis que tu ne rentres pas dans void C_PersoG::Commandes(Uint8 * keys).
Il est comment ton gestionnaire d'événements?

n°1636470
Yru
Posté le 04-11-2007 à 17:51:37  profilanswer
 

Si si j'y rentres, j'ai testé avec un SDL_Quit quand ca passe dans le if(keys[SDLK_2]) et le prog se ferme.

n°1636653
Yru
Posté le 05-11-2007 à 09:29:34  profilanswer
 

Quelqu'un sait où est le problème ?

n°1636666
Joel F
Real men use unique_ptr
Posté le 05-11-2007 à 10:10:30  profilanswer
 

ligne 42 obv. :o

 

blague à part ...

 

pour récupérer les valeurs d'un membre d'une instance d'une classe, on utilise des accesseurs aka des méthodes d'instance qui renvoie le valeur d'un member.

 
Code :
  1. class A
  2. {
  3.   public:
  4.   A(int i=0) :val(i) {}
  5.   ~A() {}
  6.   int getVal() const { return val; }
  7.   private :
  8.   int val;
  9. };
  10. class B
  11. {
  12.   B() {}
  13. ~B() {}
  14.   void doSmthgWith( const A& a )
  15.   {
  16.      cout << "Cet instance de A a pour valeur " << a.getVAl() << endl;
  17.   }
  18. };
 

Revise tes fondamentaux, c'ets pas clair dans ta tête


Message édité par Joel F le 05-11-2007 à 10:11:44
n°1636736
Taz
bisounours-codeur
Posté le 05-11-2007 à 11:35:18  profilanswer
 

pourquoi t'appelle tout C_ ?

mood
Publicité
Posté le 05-11-2007 à 11:35:18  profilanswer
 

n°1636789
Yru
Posté le 05-11-2007 à 13:08:49  profilanswer
 

Ok merci je vais regarder ça !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Problème de class et d'attribut

 

Sujets relatifs
probleme avec ShellExecuteDe java à class ? Quelle démarche ?
Probleme bordure tableau! Casse tête![C] Problème avec une fonction récursive
[Debutant] probleme boucleProbleme avec une variable dasn un formulaire
Problème avec un IF/ELSE[Access] Petit problème de requete
[AJAX] Problème pour affichage de l'heureproblème dans un bloc PL/SQL[RESOLU]
Plus de sujets relatifs à : Problème de class et d'attribut


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR