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





Répondre avec citation






) qui va "recevoir" et "maintenir" tous les objets créés par la fabrique et qui, en fonction d'une logique qui lui est propre (cela pourrait très bien être un flag au niveau de l'objet) décidera du meilleur moment pour détruire les objets devenus inutiles.

Partager