Cast void* - objet C++

Signaler
Messages postés
31
Date d'inscription
lundi 2 juin 2008
Statut
Membre
Dernière intervention
22 avril 2011
-
Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
-
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

Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
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 !!!