Bonjour,
J'ai un problème pour effectuer une surcharge de fonction avec type de retour covariant en utilisant des déclarations anticipées.
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); };
Merci.
Edit : Oui effectivement j'ai fait une erreur en recopiant, c'est bien des pointeurs pour le type de retour.
Partager