Tom's Guide > Forum > Programmation > [RESOLU] Connaitre le type d'un objet via une fonction c++

[RESOLU] Connaitre le type d'un objet via une fonction c++

Forum Programmation : [RESOLU] Connaitre le type d'un objet via une fonction c++

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjour,
je construit une fonction qui doit créer un objet en fonction de l'extension du fichier utilisateur. Mais je n'arrive pas à récupérer cette info dans le prog principal. J'ai pensé à ça :

Code :
  1. int TypeFichier(char* chemin, void* objet)


avec un cast de objet selon l'extension de chemin, mais ça ne fonctionne pas. Quelqu'un a une autre idée ?
Merci !

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Salut,

En coupant ton mot en plusieurs parties, par rapport au point, et en récupérant la derniere partie.
Non ?

(Exemple, tu coupes "toto.jpg" en "toto" et "jpg" )

Répondre à OmaR

J'ai pas trop compris, mais si ta conception est bien fait, tu as une classe de base à tous ces objets (que je nommerai Toto).
Il te suffit de récupérer en paramètre un Toto, puis de tester des downcasting. Pour cela, il y a le mot-clé dynamic_cast.

Code :
  1. Toto * pObjet;
  2. TotoImage * pImage;
  3. TotoVideo * pVideo;
  4. if (pImage= dynamic_cast<TotoImage *>(pObjet)) {
  5.   // pObjet est une image, cast dans pImage
  6. }
  7. else if (pVideo= dynamic_cast<TotoVideo *>(pObjet)) {
  8.   // pObjet est une video, cast dans pVideo
  9. }


Le dynamic_cast retourne NULL si ce n'est pas de la bonne classe.

Répondre à CRicky

OK, merci beaucoup, ça marche maintenant !!

Répondre à mimi69@IDN
Tom's Guide > Forum > Programmation > [RESOLU] Connaitre le type d'un objet via une fonction c++
Aller à :

Il y a 793 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens