Typage statique et fonction
Bonjour à tous,
Je bloque actuellement sur un problème de typage :
Dans une première fonction j'instancie un ObjetA, et je renvoie un pointeur de type InterfaceObjetA, qui point sur cet objet.
Le type dynamique de la valeur de retour est donc un InterfaceObjetA, et son type statique un ObjetA
Cependant, dans le programme appelant, le pointeur retourné à perdu son type statique :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
IObjetA* builder(...) {
ObjetA instance(...);
IObjetA *pInstance = &instance;
cout << typeid(*pInstance).name() << endl; // renvoie => ObjectA
return pInstance;
}
int main() {
IObjetA *pointeur;
pointeur = builder(...);
cout << typeid(*pointeur).name() << endl; // renvoie => IObjetA
} |
Est-ce dû à une erreur d'écriture de ma part ou dois-je trouver un autre moyen de créer mes objets
(je précise, pour mon application je n'ai pas le droit d'utiliser d'allocation dynamique)
Merci d'avance de votre aide