Cast void* - objet C++

zaraki21 Messages postés 31 Date d'inscription lundi 2 juin 2008 Statut Membre Dernière intervention 22 avril 2011 - 23 août 2010 à 15:49
fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 - 23 août 2010 à 16:51
Bonjour,

Je travaille actuellement sur un projet en C/C++ dans lequel je souhaite "caster" un membre d'une classe de type void* en un pointeur sur un objet d'une autre classe.
Je m'explique : j'ai deux classes bien différentes CTest1 (utilisation de singleton) et CTest2 avec fonctions et attributs membres.
Dans la classe CTest2 j'ai l'attribut suivant :
void* m_pObjet;


Et je désire faire dans le constructeur de la classe CTest2 la chose suivante :
CTest2::CTest2{
     m_pObjet= (CTest1* )CTest1::getInstance();
     m_pObjet->fonction();
}

Seulement voilà, à la compilation j'ai l'erreur '"void*' is not a pointer-to-object type".
Donc si quelqu'un a une idée pour faire cette manipulation ( en soulignant, que dans mon projet il faut que j'utilise un void* , je ne peux pas par exemple utiliser un attribut membre "CTest1*". )

Merci d'avance pour vos réponses.

1 réponse

fregolo52 Messages postés 1114 Date d'inscription mercredi 15 juin 2011 Statut Membre Dernière intervention 6 mai 2021 4
23 août 2010 à 16:51
salut,

Pourquoi void* m_pObjet;
et pas CTest1* m_pObjet;

A mon avis, ce cast est à l'envers : m_pObjet= (CTest1* )CTest1::getInstance();
Ca serait plutot : m_pObjet= (void* )CTest1::getInstance(); (si void* m_pObjet;)
Mais ça devient débile avec la ligne d'après !!!
0
Rejoignez-nous