Bonjour à tous.
Je voudrais savoir s'il est possible de pointer vers un objet sans que le compilateur ne sache de quel objet il s'agisse. Je vais essayer d'être plus clair :
j'ai un void** (Liste_Selection). Ce void** est un tableau de void*. Chaque void* pointe vers la spécialisation d'une classe template.
L'allocation mémoire de mon void** est dynamique :
Liste_Selection = (void**)malloc(Taille_Tableau * sizeof(void*));
ensuite, je connais le type de donnée que je veux stocker et leur nombre alors je fais par exemple :
Liste_Selection[index] = (CConteneur<long int>*)malloc(sizeof(CConteneur<long int>));
CConteneur est, vous l'aurez deviné, ma classe template.
Mon problème est que quand je veux apeller une méthode de mon objet template, je ne peux pas faire :
(this->Liste_Selection[i])->Allouer_Memoire(...);
Le compilo me dit que void* n'est pas un type de pointeur vers un objet
je suis obligé de faire :
((CConteneur<long int>*)(this->Liste_Selection[i]))->Allouer_Memoire(...);
Mais devoir faire cela m'ennuit.
Je voudrais donc pouvoir pointer vers un objet sans que le compilo ne le connaisse à l'avance (en faisant attention à ma gestion de la mémoire bien sur :)
ou alors pourvoir passer à CConteneur<> un objet dynamique CConteneur<Type_Variable[index]> par exemple.
Si quelqu'un a une idée ba c'est génial.
Je continue de chercher.
Merci d'avance
Partager