| View previous topic :: View next topic |
| Author |
Message |
JM Guest
|
Posted: Thu Sep 08, 2005 5:33 pm Post subject: Surchage de fonctions et héritage |
|
|
Bonjour
J'ai un petit problème.
J'ai une class a qui resemble à ca :
class A
{ public:
void Read(int &a);
void Read(short &a);
}
Je crée une classe dérivée B :
class B : public A
{ void Read(MONTYPE &a);
}
Dans le prgramme principale, je fais la chose suivante :
{ B objet;
int i;
objet.Read(i);
}
A la compilation (Visual C++) cela plante.
D'où ma question : la surchage n'est pas conservée en cas d'héritage?
Merci d'avance.
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Thu Sep 08, 2005 6:25 pm Post subject: Re: Surchage de fonctions et héritage |
|
|
JM a écrit :
| Quote: | class A
{ public:
void Read(int &a);
void Read(short &a);
}
Je crée une classe dérivée B :
class B : public A
{ void Read(MONTYPE &a);
}
[...] |
| Quote: |
D'où ma question : la surchage n'est pas conservée en cas d'héritage?
|
Les fonctions dans la classe dérivée cachent toutes fonctions de même
nom dans la classe de base, qui de participent donc pas au mécanisme de
résolution du surcharge.
--
Loïc
|
|
| Back to top |
|
 |
JM Guest
|
Posted: Thu Sep 08, 2005 6:26 pm Post subject: Re: Surchage de fonctions et héritage |
|
|
Ok, merci
Loïc Joly a écrit :
| Quote: | JM a écrit :
class A
{ public:
void Read(int &a);
void Read(short &a);
}
Je crée une classe dérivée B :
class B : public A
{ void Read(MONTYPE &a);
}
[...]
D'où ma question : la surchage n'est pas conservée en cas d'héritage?
Les fonctions dans la classe dérivée cachent toutes fonctions de même
nom dans la classe de base, qui de participent donc pas au mécanisme de
résolution du surcharge.
|
|
|
| Back to top |
|
 |
Jean-Marc Bourguet Guest
|
Posted: Fri Sep 09, 2005 7:23 am Post subject: Re: Surchage de fonctions et héritage |
|
|
Loïc Joly <loic.actarus.joly (AT) wanadoo (DOT) fr> writes:
| Quote: | JM a écrit :
class A
{ public:
void Read(int &a);
void Read(short &a);
}
Je crée une classe dérivée B :
class B : public A
{ void Read(MONTYPE &a);
}
[...]
D'où ma question : la surchage n'est pas conservée en cas d'héritage?
Les fonctions dans la classe dérivée cachent toutes fonctions de même nom
dans la classe de base, qui de participent donc pas au mécanisme de
résolution du surcharge.
|
Il manque la solution, mettre
using Read;
dans la classe B.
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 |
|
 |
Gabriel Dos Reis Guest
|
Posted: Fri Sep 09, 2005 1:17 pm Post subject: Re: Surchage de fonctions et héritage |
|
|
Jean-Marc Bourguet <jm (AT) bourguet (DOT) org> writes:
| Quote: | Loïc Joly <loic.actarus.joly (AT) wanadoo (DOT) fr> writes:
JM a écrit :
class A
{ public:
void Read(int &a);
void Read(short &a);
}
Je crée une classe dérivée B :
class B : public A
{ void Read(MONTYPE &a);
}
[...]
D'où ma question : la surchage n'est pas conservée en cas d'héritage?
Les fonctions dans la classe dérivée cachent toutes fonctions de même nom
dans la classe de base, qui de participent donc pas au mécanisme de
résolution du surcharge.
Il manque la solution, mettre
using Read;
^ |
Il manque « A:: ».
-- Gaby
|
|
| Back to top |
|
 |
|