[conception] spécialisation de paramètres de fonctions héritées
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:
Code:
1 2 3 4 5 6 7 8 9 10
|
class IResponse
{
//...
};
class Response1 : public IResponse
{
// ...
}; |
Ensuiet, j'ai une classe mère (virtuelle) IRequest qui définit une fonction membre process().
J'ai plusieurs classe filles qui implémentent IRequest:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
class IRequest
{
// [...]
virtual int process() = 0;
};
class Request1 : public IRequest
{
// [...]
int process();
} |
Jusqu'ici, tout va bien.
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:
Code:
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);
} |
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.
Vous voyez ce que je cherche à faire? (c'est pas évident à expliquer)