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 :
Est-ce dû à une erreur d'écriture de ma part ou dois-je trouver un autre moyen de créer mes objets
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
(je précise, pour mon application je n'ai pas le droit d'utiliser d'allocation dynamique)
Merci d'avance de votre aide
Partager