Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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 :
  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 !
Lassé par la pub ? Créez un compte
Expert Programmation

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")
Expert Programmation

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

Le dynamic_cast retourne NULL si ce n'est pas de la bonne classe.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde