| View previous topic :: View next topic |
| Author |
Message |
Jean-Charles Gibier Guest
|
Posted: Thu Jan 05, 2006 9:46 am Post subject: pb VC6 polymorphisme & fct virtuelle |
|
|
Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
Or class1 dérive de class2 ET le type renvoyé par function1 dérive de
celui renvoyé par function2.
Je pensais que les conditions étaient suffisantes pour affecter la fonction
virtuelle de la classe parente mais apparament le type de retour doit être
le même que celui la fonction 'super' et ne peut pas être celui d'une classe
dérivée.
Pouvez vous (con|in)firmer ?
Thx
JCG
|
|
| Back to top |
|
 |
Aurélien Barbier-Accary Guest
|
Posted: Thu Jan 05, 2006 10:00 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
Jean-Charles Gibier a écrit :
| Quote: | Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
Or class1 dérive de class2 ET le type renvoyé par function1 dérive de
celui renvoyé par function2.
Je pensais que les conditions étaient suffisantes pour affecter la fonction
virtuelle de la classe parente mais apparament le type de retour doit être
le même que celui la fonction 'super' et ne peut pas être celui d'une classe
dérivée.
Pouvez vous (con|in)firmer ?
Thx
JCG
|
Bonjour,
il me semble qu'il faudrait retourner des références (ou des pointeurs) dans les
deux fonctions pour que la surcharge soit possible.
Aurélien.
|
|
| Back to top |
|
 |
Jean-Charles Gibier Guest
|
Posted: Thu Jan 05, 2006 10:12 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
"Aurélien Barbier-Accary" <NOSPAM_barbier.aurelien (AT) free (DOT) fr.invalid> a écrit
dans le message de news: 43bcee63$0$21698$626a54ce (AT) news (DOT) free.fr...
| Quote: | Jean-Charles Gibier a écrit :
Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
Or class1 dérive de class2 ET le type renvoyé par function1 dérive de
celui renvoyé par function2.
Je pensais que les conditions étaient suffisantes pour affecter la
fonction virtuelle de la classe parente mais apparament le type de
retour doit être le même que celui la fonction 'super' et ne peut pas
être celui d'une classe dérivée.
Pouvez vous (con|in)firmer ?
Thx
JCG
Bonjour,
il me semble qu'il faudrait retourner des références (ou des pointeurs)
dans les deux fonctions pour que la surcharge soit possible.
Aurélien.
|
C'est le cas.
petite digression : en fait j'essaye de compiler le code du serveur
realmedia , comme le code est supposé être valide, j'imagine que l'erreur
peut aussi se situer dans le contexte de la compilation (option, variable
d'environnement).
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Thu Jan 05, 2006 10:16 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
"Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
| Quote: | Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
^^^^^^^^^ |
Tu es sur?
| Quote: | Or class1 dérive de class2 ET le type renvoyé par function1 dérive de
celui renvoyé par function2.
Je pensais que les conditions étaient suffisantes pour affecter la fonction
virtuelle de la classe parente mais apparament le type de retour doit être
le même que celui la fonction 'super' et ne peut pas être celui d'une classe
dérivée.
|
VC6 est peut-etre suffisemment vieux pour ne pas implementer cette
regle.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
Jean-Charles Gibier Guest
|
Posted: Thu Jan 05, 2006 10:40 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de news:
[email]pxb1wzn9dzf.fsf (AT) news (DOT) bourguet.org[/email]...
| Quote: | "Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
^^^^^^^^^
Tu es sur?
|
En fait c'est le message générique du manuel la vraie sortie est la
suivante (les sources du projet Helix étant open depuis 2000 je peux être
plus explicite :
error C2555: 'CInOrderPacketDeliveryQueue::peek_front' : overriding virtual
function differs from 'CInorderPacketQueue::peek_front' only by return type
or calling convention
or dans la classe 'CInorderPacketQueue' la déclaration est la suivante :
--------------------8<-----------------------
virtual CQueueEntry* peek_front();
--------------------8<-----------------------
et dans CInOrderPacketDeliveryQueue l'implémentation est celle ci :
--------------------8<-----------------------
public:
virtual InOrderPacketDeliveryEntry* peek_front()
{
if(CInorderPacketQueue::size())
{
return (InOrderPacketDeliveryEntry*)CInorderPacketQueue::peek_front();
}
else
{
return NULL;
}
--------------------8<-----------------------
et enfin je confirme que la classe 'InOrderPacketDeliveryEntry' est bien
fille de 'CQueueEntry'
class InOrderPacketDeliveryEntry
: public CQueueEntry
, public HXListElem
....
| Quote: |
Or class1 dérive de class2 ET le type renvoyé par function1 dérive de
celui renvoyé par function2.
Je pensais que les conditions étaient suffisantes pour affecter la
fonction
virtuelle de la classe parente mais apparament le type de retour doit
être
le même que celui la fonction 'super' et ne peut pas être celui d'une
classe
dérivée.
VC6 est peut-etre suffisemment vieux pour ne pas implementer cette
regle.
C'est ce que je subodore mais comme je n'ai (sauf erreur) pas vu de de |
contre indication dans le readme,
il va falloir que je me replonge dans les ML ou que je remonte le pb.
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Thu Jan 05, 2006 10:42 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
"Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
| Quote: | "Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de news:
[email]pxb1wzn9dzf.fsf (AT) news (DOT) bourguet.org[/email]...
"Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
^^^^^^^^^
Tu es sur?
En fait c'est le message générique du manuel la vraie sortie est la
suivante (les sources du projet Helix étant open depuis 2000 je peux être
plus explicite :
error C2555: 'CInOrderPacketDeliveryQueue::peek_front' : overriding virtual
function differs from 'CInorderPacketQueue::peek_front' only by return type
or calling convention
|
Mon probleme etait fonction1 et fonction2. On a bien deux fois
peek_front :-)
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|
|
| Back to top |
|
 |
Jean-Charles Gibier Guest
|
Posted: Thu Jan 05, 2006 10:51 am Post subject: Re: pb VC6 polymorphisme & fct virtuelle |
|
|
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de news:
[email]pxbmzib7y7l.fsf (AT) news (DOT) bourguet.org[/email]...
| Quote: | "Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
"Jean-Marc Bourguet" <jm (AT) bourguet (DOT) org> a écrit dans le message de news:
[email]pxb1wzn9dzf.fsf (AT) news (DOT) bourguet.org[/email]...
"Jean-Charles Gibier" <jeancharlesg_NOSPAM_ (AT) free (DOT) fr> writes:
Hello,
Mon compilateur (VC6) me renvoie l'erreur suivante :
'class1::function1' : overriding virtual function differs from
'class2::function2' only by return type or calling convention
^^^^^^^^^
Tu es sur?
En fait c'est le message générique du manuel la vraie sortie est la
suivante (les sources du projet Helix étant open depuis 2000 je peux être
plus explicite :
error C2555: 'CInOrderPacketDeliveryQueue::peek_front' : overriding
virtual
function differs from 'CInorderPacketQueue::peek_front' only by return
type
or calling convention
Mon probleme etait fonction1 et fonction2. On a bien deux fois
peek_front :-)
|
Et je suis bon pour un "work around"
(En fait l'annonce du projet Helix date de 2002 et non 2000)
|
|
| Back to top |
|
 |
loic.actarus.joly@numeric Guest
|
|
| Back to top |
|
 |
|