OVH Cloud OVH Cloud

downcast

3 réponses
Avatar
Remy Deslignes
Bonjour,

j'ai une classe class1 dont dérive une classe class2.
class1 a une fonction virtuelle fonc();
class2 surclasse fonc();

dans une methode, je veux faire :

mafonction(class2* mon_ptr)
{
mon_ptr->class1::fonc();
}

... Ce qu'accepte volontier GCC , mais pas VC++ ...

Quelqu'un a-t-il une idée pour éviter ce probleme de downcast ?

3 réponses

Avatar
Durand Richard
"Remy Deslignes" a écrit dans le message de
news:bj4vok$ckm$
Bonjour,

j'ai une classe class1 dont dérive une classe class2.
class1 a une fonction virtuelle fonc();
class2 surclasse fonc();

dans une methode, je veux faire :

mafonction(class2* mon_ptr)
{
mon_ptr->class1::fonc();
}

... Ce qu'accepte volontier GCC , mais pas VC++ ...


Chez moi VC++ 6 l'accepte sans broncher. Il faudrait peut-être voir le reste
de ton code.

Avatar
Remy Deslignes
Durand Richard wrote:
"Remy Deslignes" a écrit dans le message de
news:bj4vok$ckm$

Bonjour,

j'ai une classe class1 dont dérive une classe class2.
class1 a une fonction virtuelle fonc();
class2 surclasse fonc();

dans une methode, je veux faire :

mafonction(class2* mon_ptr)
{
mon_ptr->class1::fonc();
}

... Ce qu'accepte volontier GCC , mais pas VC++ ...



Chez moi VC++ 6 l'accepte sans broncher. Il faudrait peut-être voir le reste
de ton code.


OK, le probleme venait d'une portée de namespace ... VC++ n'aime pas les

downcast du type mon_ptr->ns1::ns2::class1::fonc();

enfin je crois !!!


Avatar
Vivien Gallinaro
Remy Deslignes wrote:
mon_ptr->class1::fonc();


OK, le probleme venait d'une portée de namespace ... VC++ n'aime pas les

downcast du type mon_ptr->ns1::ns2::class1::fonc();


Ce serait pas un truc du genre "quand on qualifie un nom, il faut le
qualifier complètement" ? Qui donc n'aurait rien à voir avec VC...

enfin je crois !!!


Moi je sais pas. Je demande juste.

Gourgou