Droit dans la programmation objet

Droit dans la programmation objet - C++ - Programmation

Marsh Posté le 07-05-2004 à 19:43:09    

Bonjour à tous ,
 
Ma question est simple :  
une classe Jeux :
 
class Jeux
 {
 private :
        Serpent S[4];
  Plateau P;
  Cadeau C;
  int Unite;
 public :
  Jeux();
        Serpent RSerpent(int NumSerpent);
 };
Jeux::Jeux()
 {
    Unite = 1;
 };
Serpent Jeux::RSerpent(int NumSerpent)
    {
    return S[NumSerpent];
    };
 
Une classe Serpent :  
 
class Serpent
 {
    private :
        AnsiString Nom;
    public :
        Serpent();
        AnsiString RNom();
        void ENom(AnsiString N);
 };
//Constructeur
Serpent::Serpent()
    {
    Nom = "Serpent";
    };
//Méthodes pour renvoyer les propriétés
AnsiString Serpent::RNom()
    {
    return Nom;
    };
//Méthode pour modifier les propriétés
void Serpent::ENom(AnsiString N)
    {
    Nom = N;
    };
 
Mon probleme est le suivant : lorsque je tente de modifier le serpent renvoyer par la methode RSerpent de Jeux les modifications ne sont pas faites ... voici le code qui devrait fonctionner :  
 
void __fastcall TForm1::RGSerpentClick(TObject *Sender)
{
EdNom->Text = J.RSerpent(RGSerpent->ItemIndex).RNom();
 
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Bt4Click(TObject *Sender)
{
J.RSerpent(RGSerpent->ItemIndex).ENom(EdNom->Text);
 
}
 
et au debut de mon code j'ai declaré en variable globale
 
Jeux J;
 
Ceci est peut etre un histoire de droit ou encore de pointeur...
Pourriez vous maider
 
Merci d'avance
 

Reply

Marsh Posté le 07-05-2004 à 19:43:09   

Reply

Marsh Posté le 07-05-2004 à 20:05:13    

Je pense que le probleme est que RSerpent renvoi un objet serpent au lieu d'un pointeur vers LE serpent en question , plus que quelque test et je resouderai le pb tt seul :)

Reply

Marsh Posté le 07-05-2004 à 20:10:19    

La solution etait bien ça désolé de vous avoir dérangé pour rien !!

Reply

Marsh Posté le 10-05-2004 à 12:43:34    

utilises une référence sinon
 

Code :
  1. class Jeux
  2. {
  3. // private : (inutile)
  4.        Serpent S[4];
  5. Plateau P;
  6. Cadeau C;
  7. int Unite;
  8. public :
  9. Jeux();
  10.        Serpent & RSerpent(int NumSerpent);
  11.        const Serpent & RSerpent(int NumSerpent) const;
  12. };
  13. Serpent & Jeux::RSerpent(int NumSerpent)
  14.    {
  15.    // vérification de dépassement ?
  16.    return S[NumSerpent];
  17.    };
  18. const Serpent & Jeux::RSerpent(int NumSerpent) const
  19.    {
  20.    // idem
  21.    return S[NumSerpent];
  22.    };


Message édité par blackgoddess le 10-05-2004 à 12:43:55

---------------
-( BlackGoddess )-
Reply

Sujets relatifs:

Leave a Replay

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