Appel d'une fonction redéfinie
Salut,
Voilà le topo :
J'ai une classe de base définissant quelques fonctions, et j'ai deux classes dérivées de cette classe de base.
Certaines fonctions de la classe de base sont redéfinies dans les classes dérivées.
J'ai un soucis concernant l'appel aux fonctions qui existent dans la classe de base et qui sont redéfinies, et ceci depuis les classes dérivées.
Voilà un peu de code :
base.h :
Code:
1 2 3
|
protected:
virtual int __fastcall LireSurPortCOM(BYTE *dcReponseParam, DWORD TimeOut, bool DoAcquit); |
base.cpp :
Code:
1 2 3 4 5
|
int __fastcall TBase::LireSurPortCOM(BYTE *dcReponseParam, DWORD TimeOut, bool DoAcquit)
{
return 0;
} |
derivee.h
Code:
1 2 3 4
|
private:
int __fastcall LireSurPortCOM(BYTE *dcReponseParam, DWORD TimeOut, bool DoAcquit);
int __fastcall FaireTransfert(); |
derivee.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
int __fastcall TDerivee::LireSurPortCOM(BYTE *dcReponseParam, DWORD TimeOut, bool DoAcquit)
{
bla bla bla
return result;
}
int __fastcall TDerivee::FaireTransfert()
{
int result = LireSurPortCOM(paramètres...);
return result;
} |
Dans mon mainform, je fais ceci :
Code:
1 2 3 4
|
TBase *b = new TBase();
TDerivee *d = (TDerivee *)b;
d->FaireTransfert(); |
La fonction FaireTransfert() est bien appelée depuis la classe dérivée (puisqu'elle lui est propre).
Par contre, dans la fonction FaireTransfert() elle-même, l'appel à la fonction LireSurPortCOM passe par la fonction de la classe de base et non la fonction redéfinie !
J'ai loupé quelque chose ?