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 : 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();
};
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.