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

  FORUM HardWare.fr
  Programmation

  [C++] aggregation par reference

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] aggregation par reference

n°83947
Slash-
Posté le 23-12-2001 à 13:40:28  profilanswer
 

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
}

mood
Publicité
Posté le 23-12-2001 à 13:40:28  profilanswer
 

n°84043
Fork
Posté le 24-12-2001 à 09:56:36  profilanswer
 

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...

n°84067
Slash-
Posté le 24-12-2001 à 12:29:08  profilanswer
 

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

n°84160
joce
Architecte / Développeur principal
"BugHunter"
Posté le 25-12-2001 à 14:56:33  profilanswer
 

pourquoi station hériterait pas de la classe appareil ?


---------------
Protèges carnets personnalisés & accessoires pour bébé
n°84164
Slash-
Posté le 25-12-2001 à 15:01:28  profilanswer
 

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 ;)

n°84173
joce
Architecte / Développeur principal
"BugHunter"
Posté le 25-12-2001 à 15:43:29  profilanswer
 

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é
n°84213
Slash-
Posté le 25-12-2001 à 17:52:02  profilanswer
 

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

n°84215
joce
Architecte / Développeur principal
"BugHunter"
Posté le 25-12-2001 à 18:27:25  profilanswer
 

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é
n°84240
bjone
Insert booze to continue
Posté le 25-12-2001 à 19:55:00  profilanswer
 

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

n°84254
joce
Architecte / Développeur principal
"BugHunter"
Posté le 25-12-2001 à 20:16:59  profilanswer
 

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é

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

  [C++] aggregation par reference

 

Sujets relatifs
[DJGPP] J'ai jamais vu ca!! (undefined reference)[C++] Passage de référence
Référence de bouquins html et c++...Qu'est ce qu'une REFERENCE ?
[JAVA] Get reference???[PHP] Comment faire reference a un fichier php d'un autre site ???
[JavaScript] : reference a une cellule d'un tableau d'une autre frame[Flash 5 / ActionScript] Y a t il un site de reference en français ?
[VB6] ListBox et référence d'élémentreference du boukin C++
Plus de sujets relatifs à : [C++] aggregation par reference


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