argument void *

argument void * - C++ - Programmation

Marsh Posté le 05-05-2007 à 01:04:33    

Salut a tous,
 
J'ai une methode qui prend en argument un void *ptr. Selon le type pointe ptr, je dois faire un traitement particulier. Y a t il une methode pour identifier le type de ptr, a part avec un typeid(ptr).name() qui renvoie void * ?
 
D'avance merci


---------------
http://otblog.free.fr
Reply

Marsh Posté le 05-05-2007 à 01:04:33   

Reply

Marsh Posté le 05-05-2007 à 02:21:43    

Tu ne peux rien faire ici. Et typeid n'est pas fait pour ce genre d'utilisation.  

Reply

Marsh Posté le 05-05-2007 à 09:12:06    

Ta démarche dénote d'une mauvaise comprehension du polymorphisme et du paradigme objet en C++. Tes arguments sont-ils tous des variantes d'un même objet ? si oui, utilise l'héritage et le polymorphisme. Si ils 'agit de divers types POD, tu peut utiliser boost::any ou boost:variant.


Message édité par Joel F le 05-05-2007 à 09:12:39
Reply

Marsh Posté le 05-05-2007 à 11:48:32    

OK, merci.
Comment fait on pour passer "this" en argument lorsque l'on a une methode qui prend un pointeur de type "boost::variant<type1,type2> *data" ou "boost::any *data" ?
 
Merci d'avance


---------------
http://otblog.free.fr
Reply

Marsh Posté le 05-05-2007 à 12:07:20    

j'ai trouve : un reinterpret_cast


---------------
http://otblog.free.fr
Reply

Marsh Posté le 05-05-2007 à 16:42:00    

...

Reply

Marsh Posté le 05-05-2007 à 16:47:38    

???


---------------
http://otblog.free.fr
Reply

Marsh Posté le 05-05-2007 à 23:27:30    

quand je lis ça mes yeux saigne [:dawa] ...
 
reinterpret_cast, tu sais ce que ca veut dire ou pas ?
Relis les bases du C++ et reviens aprés ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed