[C++] aggregation par reference

aggregation par reference [C++] - Programmation

Marsh Posté le 23-12-2001 à 13:40:28    

Salut,
 
j'ai fait une classe appareil et une classe station
j'ai fait une relation d'aggregation par reference entre ces 2 classes (cad qu'il y a un pointeur (appareil *app) dans les variables membres de la classe station)
 
mon aggregation fonctionne sans probleme, mais j'ai un petit souci pour ceci :  
 
l'utilisateur peut choisir d'encoder une nouvelle station
 
il rentre tout ce qui concerne la station puis j'aimerai qu'il rentre le numero d'appareil, ensuite le programme initialisera lui meme le pointeur de appareil (l'aggregation) en fonction du numero d'appareil, quelqu'un peut il m'expliquer comment faire cela svp?
 
merci
 
class appareil
{
 private : int numapp;
    char *nom;
    char *caracteristiques;
 public : blablabla
}
 
class station
{
 private : int numsta;
    char *nom;
    appareil *app;
 
 public : blablabla
}

Reply

Marsh Posté le 23-12-2001 à 13:40:28   

Reply

Marsh Posté le 24-12-2001 à 09:56:36    

Il faut utiliser le constructeur/destructeur de ta classe : quand elles sont déclarées et implémentées, ces deux fonctions se lancent automatiquement :
 
- à la création d'un objet de cette classe (constructeur)
- à la destruction d'un objet de cette classe (destructeur)
 
class station  
{  
   private :
   int numsta;  
   char *nom;  
   appareil *app;  
 
   public :
   station(); // prototype du constructeur
   ~station(); // prototype du destructeur
}
 
station::station()
{
   /* dans le constructeur, tu écris toutes les initialisation */
}
 
station::~station()
{
   /* dans le destructeur, tu écris toutes les instructions termiales, comme par exemple la libération de la mémoire que tu as allouée dynamiquement */
}
 
L'idée, c'est que dans le constructeur de "station", tu crée un nouvel objet "appareil" que tu auras préalablement équipé d'un constructeur/destructeur.
 
Mais bon, si tu ne maitrises pas trop ces bestioles, je peux entrer un peu plus dans les détails...

Reply

Marsh Posté le 24-12-2001 à 12:29:08    

je vois ce que tu veux dire mais en fait, la classe appareil va etre euh... comment dire :) en fait les appareils sont tous definis, on pourra en rajouter mais c'est tres rare, les appareils sont la avant les stations...
 
on ma conseille de faire un conteneur (liste ou tableau) mais je ne sais pas trop comment ca marche, quelqu'un peut il m'expliquer?
 
merci

Reply

Marsh Posté le 25-12-2001 à 14:56:33    

pourquoi station hériterait pas de la classe appareil ?


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 25-12-2001 à 15:01:28    

Parce que dans l'enonce (et oui c'est pour l'ecole) on me demande de faire une relation d'aggregation par reference entre stations et appareil
 
voila ;)

Reply

Marsh Posté le 25-12-2001 à 15:43:29    

et un truc du genre :
 
class appareil
{
private : int numapp;
   char *nom;
   char *caracteristiques;
   int  numero;
public :
   appareil();
   void appareil(int);
   ~appareil();
}
 
class station
{
private : int numsta;
   char *nom;
   appareil *app;
 
public :
 
  station();
  void pipo(int numero, char* nom, appareil* app);
  ~station();
   
}  
 
void appareil::appareil(int numero)
{
  numero=this->numero;
}
 
void station:: pipo(int numero, char* nom, appareil* app)
{
  app->appareil(numero);
}

 

[edtdd]--Message édité par joce--[/edtdd]


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 25-12-2001 à 17:52:02    

Merci pour ta reponse, mais j'aime bien l'idee d'un conteneur, je voudrais faire une liste chainée pour la classe appareil et ensuite dans stations il me suffirait d'aller voir dans la liste chainé, mais le prob c'est que je ne sais pas trop comment faire cette liste...
 
sais tu me montrer joce? ou meme quelqu'un d'autre?
 
merci

Reply

Marsh Posté le 25-12-2001 à 18:27:25    

oula, liste chainée, faudrait que je recherche loin dans mes souvenirs, ca doit faire plus d'un an que j'ai pas fais ni C ni C++ :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Marsh Posté le 25-12-2001 à 19:55:00    

joce >> c'est pas bien d'oublier ses classiques. :D

Reply

Marsh Posté le 25-12-2001 à 20:16:59    

bjone a écrit a écrit :

joce >> c'est pas bien d'oublier ses classiques. :D  




pfff, en plus je vais devoir m'en reboofer plein :lol:
Enfin ceci, je me rappelle toujours du principe, c'est le principal :D


---------------
Protèges carnets personnalisés & accessoires pour bébé
Reply

Sujets relatifs:

Leave a Replay

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