Salut,
Imaginons deux classes:
et
c
Code :
- lass SportCar : public Car {...};
|
Imaginons deux foncitons déclarées ainsi (surcharge)
Code :
- void myfunc(Car* pCar){
- OutputDebugString(TEXT("myfunc2(Car* pCar) is called" ));
- }
- void myfunc(SportCar* pSportCar){
- OutputDebugString(TEXT("myfunc2(SportCar* pSportCar) is called" ));
- }
|
Je voudrais en fait que la "bonne" fonction myfunc soit appelée selon le type réel du pointeur envoyé.
Par exemple, je voudrais que:
SportCar mySportCar;
Car* pCar = &mySportCar;
myfunc(pCar);
appelle void myfunc(SportCar* pSportCar) et non void myfunc(Car* pCar).
Est ce possible? Ou suis-je obligé de faire une sorte de RTTI à la volée pour déterminter quel type de fonction appeler?