Bonjour à tous,
J'ai une classe GareCachee dans laquelle je souhaite inclure plusieurs instances d'une classe Zone afin de détecter les trains. Le constructeur de la classe Zone reçoit la pin d'entrée reliée à la zone de détection.
Ayant encore peu d'expérience avec les constructeurs C++, je me demande quelle est la meilleure manière de créer une telle structure.
Objets de classe Zone
class GareCachee
{
...
private:
Zone zoneG;
Zone zoneD;
};
Avec cette variante, comment appeler le constructeur Zone en lui passant une pin différente pour zoneG et zoneD ?
Références vers classe Zone
class GareCachee
{
public:
GareCachee (Zone &xZoneG, Zone &xZoneD) : zoneG (xZoneG), zoneD (xZoneD) {}
private:
Zone &zoneG;
Zone &zoneD;
};
...
Zone zG (14);
Zone zD (15);
GareCachee gareCachee (zG, zD);
Cette approche fonctionne bien, mais on doit connaître les objets inclus avant l'appel du constructeur GareCachee.
Pointeurs de classe Zone
class GareCachee
{
public:
GareCachee ()
{
pZoneG = new Zone (14);
pZoneD = new Zone (15);
}
private:
Zone *pZoneG;
Zone *pZoneD;
};
Ici on alloue dynamiquement les objets inclus. Une variante aurait été de les instancier hors de la classe et les passer en paramètre à une méthode différente du constructeur qui mettrait à jour pZoneG et pZoneD.
Quelle approche préconisez-vous ?
Un tout grand merci d'avance pour vos suggestions.
Bon début de semaine et meilleures salutations.
Marc-Henri