Bonjour à tous,
j'ai un petit problème de conception, et je ne sais pas trop comment le résoudre de façon élégante.
J'ai une classe mère (virtuelle) IResponse et plusieurs classes filles qui l'implémentent:
Ensuiet, j'ai une classe mère (virtuelle) IRequest qui définit une fonction membre process().
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 class IResponse { //... }; class Response1 : public IResponse { // ... };
J'ai plusieurs classe filles qui implémentent IRequest:
Jusqu'ici, tout va bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class IRequest { // [...] virtual int process() = 0; }; class Request1 : public IRequest { // [...] int process(); }
Je voudrais maintenant que ma méthode process prenne un IResponse en paramètre, mais que ce paramètre soit spécialisé pour les spécialisations de IRequest::process.
En gros, je voudrais faire ça:
Le problème, c'est que si je fais ça, j'ai cru comprendre que je ne fais que surcharger process, mais que je ne l'implémente pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class IRequest { // [...] virtual int process(IResponse &response) = 0; }; class Request1 : public IRequest { // [...] int process(Response1 &response); }
Vous voyez ce que je cherche à faire? (c'est pas évident à expliquer)
Partager