? type depointeur ?

ifren Messages postés 37 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 25 août 2003 - 13 juin 2003 à 09:49
cs_dominion Messages postés 230 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2008 - 28 mars 2004 à 21:05
Comment reconnaitre a l'execution type vers qui le pointeur pointe
merci

soyant heureux
faisant fortune
:big)

6 réponses

cmarsc Messages postés 455 Date d'inscription mercredi 6 mars 2002 Statut Membre Dernière intervention 18 décembre 2003
13 juin 2003 à 10:51
peux-tu être plus claire car moi ne comprends pas bien
0
ifren Messages postés 37 Date d'inscription jeudi 15 mai 2003 Statut Membre Dernière intervention 25 août 2003
13 juin 2003 à 10:57
ok,
j'ai une class A elle donne naissance a deux class A1 et A2

j'ai un code comme suit

A* a
qui pointe vers l'un des deux class filles

bon je veux connaitre vers quel class il pointe

soyant heureux
faisant fortune
:big)
0
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
13 juin 2003 à 13:45
-------------------------------
Réponse au message :
tu utilise l'opérateur de comparaison tout simplement.

if ( a == &( A1 ) )

if ( a == &( A2 ) )
-------------------------------

> ok,
> j'ai une class A elle donne naissance a deux class A1 et A2
>
> j'ai un code comme suit
>
> A* a
> qui pointe vers l'un des deux class filles
>
> bon je veux connaitre vers quel class il pointe
>
>
> soyant heureux
> faisant fortune
> :big)
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > peux-tu être plus claire car moi ne comprends pas bien
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Comment reconnaitre a l'execution type vers qui le pointeur pointe
> > > merci
> > >
> > >
> > > soyant heureux
> > > faisant fortune
> > > :big)
> >
>
0
monk31 Messages postés 5 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 13 juin 2003
13 juin 2003 à 14:11
pour connaitre le type de l'objet pointé a, il faut déjà que tes classes A, A1 et A2 soient des classes polymorphes (c'est à dire avec fonctions virtuelles). de plus, il faut activer l'option RTTI du compilateur (Run Time Type Information) et ensuite tu utilises l'opérateur dynamic_cast pour savoir quel est l'objet pointé:

A* a = new A1;
A1* a1=dynamic_cast(a);
A2* a2=dynamic_cast(a);

le résultat du dynamic_cast te retournera NULL si ce n'est pas le bon cast.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
monk31 Messages postés 5 Date d'inscription mardi 26 mars 2002 Statut Membre Dernière intervention 13 juin 2003
13 juin 2003 à 14:26
il y a aussi l'opérateur typeid qui te retourne un objet de type type_info dont la méthode name t'indique le nom de la classe de l'objet pointé :

A* a=new A1;
cout<<typeid(*a).name()<<"\n";

résultat : "class A1"
0
cs_dominion Messages postés 230 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2008
28 mars 2004 à 21:05
On active RTTI où avec Dev ?

.:8 Xurei - Gnauti seautov 8:.
0
Rejoignez-nous