Bonjour à tous,
Je me suis heurté à un problème et j'aimerai avoir vos avis pour résoudre ce type de conflit. Disons que l'on dispose des classes suivantes:
Ce code ne compile pas parce que AlimentSelecteur.SelectOn_Client renvoit un pointeur sur un objet Aliment et il n'y a pas de methode Griller(Aliment).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 class Aliment { /* class abstraite */ } class Viande : public Aliment { /* ... */ } class Legume : public Aliment { /* ... */ } class Selecteur_Aliment { Aliment * SelectOn_Client(ClientType client_type) { if(client_type == VEGAN ) return new Legume(); else return new Viande(); } } class Cuiseur { private: void Griller(const Legume & leg) const { /* ... */ } void Griller(const Viande & viande) const { /* ... */ } public: void Preparer(ClientType client_type) { Griller(*AlimentSelecteur.SelectOn_Client(client_type)); } }
Comment faire pour que soit appelée la methode qui correspond à l'objet passé? (Viande ou Légume).
Merci
Partager