Références croisées et retour covariant
Bonjour,
J'ai un problème pour effectuer une surcharge de fonction avec type de retour covariant en utilisant des déclarations anticipées.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
class C;
class D : public C;
class A
{
C* f();
};
class B : public A
{
D* f();
}; |
En utilisant le code précédant je voudrais pouvoir écrire la ligne en rouge pour dire au compilateur que la classe D hérite de C et ainsi utiliser la covariance pour les types de retour de f(). Le problème c'est que le compilateur n'accepte pas cette déclaration et si je déclare juste class D; en déclaration anticipé la covariance ne fonctionne plus car le compilateur ne sait pas que D hérite de C. Je voudrais savoir s'il existe un autre moyen pour faire fonctionner ce type de schéma.
Merci.
Edit : Oui effectivement j'ai fait une erreur en recopiant, c'est bien des pointeurs pour le type de retour.