RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Serv: irc.irc-land.org
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 static_cast et bibliothèque dynamique

Forum : C++
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ C++

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM C++

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
miq75
Nouveau membre
Inscrit : 23/01/2008
Messages : 3
Message
#148197
Posté le 23/01/08 à 19:24
Bonjour,

J'ai 1 classe "Base" avec 2 méthodes:
"getName" qui est virtuelle
"getOption" qui renvoie une valeur par défaut

Dans un bibliothèque liée dynamiquement, j'ai une classe "Cas1" qui hérite de "Base" et redéfini les 2 méthodes
"getName"
"getOption"

Dans mon code principal je crée (via la bibliothèque dynamique) une instance de la classe Cas1, seulement le type "Cas1" est inconnu par mon code principal. Il voit cette instance comme un type Base qu'il connaît, lui. J'appelle cette instance maBase.

Base *maBase = ...

Lorsque j'appelle maBase.getName(), je récupère le contenu de Cas1::getName()

Jusque là tout va bien.

Lorsque j'appelle (à la ligne suivante) maBase.getOption(), je récupère le contenu de Base::getOption(). Je pense que cela vient du fait que Base::getOption est initialisée, contrairement à Base::getName().

Hors moi, je voudrais récupérer Cas1::getOption().

Je rappelle que je ne connaît pas le type Cas1 puisqu'il est importé dynamiquement, (c'est une contrainte du projet que de l'importer ainsi)
J'ai donc pensé à un truc du genre
maBase = static_cast<typeid(*maBase)> maBase;
mais typeid ne renvoie pas un type mais un objet type_info.

Auriez vous
un moyen de déterminer dynamiquement le type "Cas1" pour le transtypage,
ou un moyen autre de récupérer Cas1::getOption au lieu de Base::getOption ?
Éventuellement, est-il possible d'importer un type inconnu par le programme principal à partir d'une bibliothèque dynamique ?

Merci.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 931
Message
#148198
Posté le 23/01/08 à 19:41
n'est-ce pas le moment d'utiliser le mot-clé virtual ?
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

miq75
Nouveau membre
Inscrit : 23/01/2008
Messages : 3
Message
#148207
Posté le 23/01/08 à 23:04
T'ain je suis trop mauvais....
J'ai simplement oublié le virtual de Base::getOption.

Merci beaucoup, j'y aurais passé des heures....

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

rainbow
Membre du club
Chef de projet(s) :
- IA savane
- Team MoteurProg

Avatar de rainbow
Inscrit : 26/05/2006
Messages : 931
Message
#148236
Posté le 24/01/08 à 16:01
de rien ;)
n'hésite pas à rester sur ce forum et le faire vivre ;)
__________________________
............ Curtis: RTS 3D ..............
......Image
........... TeamMoteurProg...........

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM C++



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.