Accueil > Forum > > > > Pb de cast ou instanceOf ???
Pb de cast ou instanceOf ???
lundi 23 décembre 2002 à 01:34:18 |
Pb de cast ou instanceOf ???

brunkass
|
Voila mon pb : g une classe A dont heritent plusieurs autres classes B1,B2,B3... g créé un vecteur de pointeur vers des objets de type A, seulement derriere c'est soit B1 soit B2 soit B3... bon en fait je voudrais connaitre le mot clef pour savoir de quel classe est un objet ??? je connaissais instanceOf ms lui il me donne tjs la classe mere (A)..... pls Merci.
|
|
lundi 23 décembre 2002 à 09:14:25 |
Re : Pb de cast ou instanceOf ???

vieuxLion
|
bonjour, Si le polymorphisme ne te suffit pas, c'est un bon endroit pour utiliser le RTTI
Voici un exemple : #include <typeinfo> #include <iostream> using namespace std; //les classes doivent posséder au moins une méthode virtuelle class A {public: A(){}; virtual ~A(){}; }; class B1 : public A {public: B1(){}; virtual ~B1(){};}; class B2 : public A {public: B2(){}; virtual ~B2(){};};
void main(int argc, char ** argv) { cout << "A* pAsurA = new A();" << endl; A* pAsurA = new A(); cout << "A* pAsurB1 = new B1();" << endl; A* pAsurB1 = new B1(); cout << "A* pAsurB2 = new B2();" << endl; A* pAsurB2 = new B2(); //Attention, en VC++6 : ne donne pas les bons résultats si on ne déréférence pas les pointeurs! cout << "typeid(pAsurA).name()=" << typeid(pAsurA).name() << endl; cout << "typeid(pAsurB1).name()=" << typeid(pAsurB1).name() << endl; cout << "typeid(pAsurB2).name()=" << typeid(pAsurB2).name() << endl; //OK cout << "typeid(*pAsurA).name()=" << typeid(*pAsurA).name() << endl; cout << "typeid(*pAsurB1).name()=" << typeid(*pAsurB1).name() << endl; cout << "typeid(*pAsurB2).name()=" << typeid(*pAsurB2).name() << endl;
l'operateur instanceof ... c'est en Java A+
------------------------------- Réponse au message : -------------------------------
> Voila mon pb : > g une classe A dont heritent plusieurs autres classes B1,B2,B3... > > g créé un vecteur de pointeur vers des objets de type A, seulement derriere c'est soit B1 soit B2 soit B3... > > bon en fait je voudrais connaitre le mot clef pour savoir de quel classe est un objet ??? > je connaissais instanceOf ms lui il me donne tjs la classe mere (A)..... > > pls > Merci. > >
|
|
lundi 23 décembre 2002 à 14:12:53 |
Re : Pb de cast ou instanceOf ???

brunkass
|
merci pour ta reponse.. le pb c que g essaye alors :
- sans dereferencer, en effet ca rend toujours la classe A - le pb c'est que quand je dereference, il me génère un warning a la compil et une erreur a l'execution !!!!
.... donc je sais pa d'ou ca viens..... Si kelkun a la réponse a ce ****** de pb.... Merci Brunkass
------------------------------- Réponse au message : -------------------------------
> bonjour, > Si le polymorphisme ne te suffit pas, > c'est un bon endroit pour utiliser le RTTI > > Voici un exemple : > #include <typeinfo> > #include <iostream> > using namespace std; > //les classes doivent posséder au moins une méthode virtuelle > class A > {public: A(){}; virtual ~A(){}; }; > class B1 : public A > {public: B1(){}; virtual ~B1(){};}; > class B2 : public A > {public: B2(){}; virtual ~B2(){};}; > > void main(int argc, char ** argv) > { > cout << "A* pAsurA = new A();" << endl; > A* pAsurA = new A(); > cout << "A* pAsurB1 = new B1();" << endl; > A* pAsurB1 = new B1(); > cout << "A* pAsurB2 = new B2();" << endl; > A* pAsurB2 = new B2(); > //Attention, en VC++6 : ne donne pas les bons résultats si on ne déréférence pas les pointeurs! > cout << "typeid(pAsurA).name()=" << typeid(pAsurA).name() << endl; > cout << "typeid(pAsurB1).name()=" << typeid(pAsurB1).name() << endl; > cout << "typeid(pAsurB2).name()=" << typeid(pAsurB2).name() << endl; > //OK > cout << "typeid(*pAsurA).name()=" << typeid(*pAsurA).name() << endl; > cout << "typeid(*pAsurB1).name()=" << typeid(*pAsurB1).name() << endl; > cout << "typeid(*pAsurB2).name()=" << typeid(*pAsurB2).name() << endl; > > l'operateur instanceof ... c'est en Java > A+ > > ------------------------------- > Réponse au message : > ------------------------------- > > > Voila mon pb : > > g une classe A dont heritent plusieurs autres classes B1,B2,B3... > > > > g créé un vecteur de pointeur vers des objets de type A, seulement derriere c'est soit B1 soit B2 soit B3... > > > > bon en fait je voudrais connaitre le mot clef pour savoir de quel classe est un objet ??? > > je connaissais instanceOf ms lui il me donne tjs la classe mere (A)..... > > > > pls > > Merci. > > > > >
|
|
jeudi 26 décembre 2002 à 17:32:18 |
Re : Pb de cast ou instanceOf ???

Toumhor
|
pourquoi ne pas ajouter une methode virtuelle a la classe A qui renvoit un type en fonction de l'objet et de deriver cette methode dans les classes derivees:
par ex: enum kind_of_class { kind_none, kind_b1, kind_b2 }
dans la classe A: kind_of_class GetKind() {return kind_none;}
dans la classe B1: kind_of_class GetKind() {return kind_b1;}
dans la classe B2: kind_of_class GetKind() {return kind_b2;}
|
|
vendredi 27 décembre 2002 à 21:43:56 |
Re : Pb de cast ou instanceOf ???

brunkass
|
------------------------------- Réponse au message : -------------------------------
> pourquoi ne pas ajouter une methode virtuelle a la classe A qui renvoit un type en fonction de l'objet et de deriver cette methode dans les classes derivees: > > par ex: > enum kind_of_class > { > kind_none, > kind_b1, > kind_b2 > } > > dans la classe A: > kind_of_class GetKind() {return kind_none;} > > dans la classe B1: > kind_of_class GetKind() {return kind_b1;} > > dans la classe B2: > kind_of_class GetKind() {return kind_b2;} > > >
|
|
vendredi 27 décembre 2002 à 21:45:40 |
Re : Pb de cast ou instanceOf ???

brunkass
|
Yep merci... c exactement ce que j'ai fait en fait ! Ms c qd meme bizarre que ce soit possible + directement... Bye -------------------------------
|
|
vendredi 27 décembre 2002 à 21:45:57 |
Re : Pb de cast ou instanceOf ???

brunkass
|
Yep merci... c exactement ce que j'ai fait en fait ! Ms c qd meme bizarre que ce soit pas possible + directement... Bye -------------------------------
|
|
lundi 30 décembre 2002 à 16:25:06 |
Re : Pb de cast ou instanceOf ???

vieuxLion
|
...de retour de vacances as tu bien positionné le switch /GR du compilateur ? ou alors sous l'environnement VC++6 Project/Settings/C++/C++Langage/cocher la case EnableRTTI
A plus
------------------------------- Réponse au message : -------------------------------
> merci pour ta reponse.. le pb c que g essaye alors : > > - sans dereferencer, en effet ca rend toujours la classe A > - le pb c'est que quand je dereference, il me génère un warning a la compil et une erreur a l'execution !!!! > > .... donc je sais pa d'ou ca viens..... > Si kelkun a la réponse a ce ****** de pb.... > Merci > Brunkass > > > > ------------------------------- > Réponse au message : > ------------------------------- > > > bonjour, > > Si le polymorphisme ne te suffit pas, > > c'est un bon endroit pour utiliser le RTTI > > > > Voici un exemple : > > #include <typeinfo> > > #include <iostream> > > using namespace std; > > //les classes doivent posséder au moins une méthode virtuelle > > class A > > {public: A(){}; virtual ~A(){}; }; > > class B1 : public A > > {public: B1(){}; virtual ~B1(){};}; > > class B2 : public A > > {public: B2(){}; virtual ~B2(){};}; > > > > void main(int argc, char ** argv) > > { > > cout << "A* pAsurA = new A();" << endl; > > A* pAsurA = new A(); > > cout << "A* pAsurB1 = new B1();" << endl; > > A* pAsurB1 = new B1(); > > cout << "A* pAsurB2 = new B2();" << endl; > > A* pAsurB2 = new B2(); > > //Attention, en VC++6 : ne donne pas les bons résultats si on ne déréférence pas les pointeurs! > > cout << "typeid(pAsurA).name()=" << typeid(pAsurA).name() << endl; > > cout << "typeid(pAsurB1).name()=" << typeid(pAsurB1).name() << endl; > > cout << "typeid(pAsurB2).name()=" << typeid(pAsurB2).name() << endl; > > //OK > > cout << "typeid(*pAsurA).name()=" << typeid(*pAsurA).name() << endl; > > cout << "typeid(*pAsurB1).name()=" << typeid(*pAsurB1).name() << endl; > > cout << "typeid(*pAsurB2).name()=" << typeid(*pAsurB2).name() << endl; > > > > l'operateur instanceof ... c'est en Java > > A+ > > > > ------------------------------- > > Réponse au message : > > ------------------------------- > > > > > Voila mon pb : > > > g une classe A dont heritent plusieurs autres classes B1,B2,B3... > > > > > > g créé un vecteur de pointeur vers des objets de type A, seulement derriere c'est soit B1 soit B2 soit B3... > > > > > > bon en fait je voudrais connaitre le mot clef pour savoir de quel classe est un objet ??? > > > je connaissais instanceOf ms lui il me donne tjs la classe mere (A)..... > > > > > > pls > > > Merci. > > > > > > > > >
|
|
Cette discussion est classée dans : pb, classe, cast, b1, instanceof
Répondre à ce message
Sujets en rapport avec ce message
urgent...pb de cast [ par marcadet ]
Bonjour j'ai le pb de cast suivant :>> char date[3]; // date a la date d'aujourd'hui>> int dat;>> dat=(int)date;>> printf("%d", dat) // -> ici
Pb avec opérateur '=' sur classe ! [ par nicolas66 ]
Bonjour @ tous !g un piti problème avec ma classe de complexes : toute la classe fonctionne ya pas de pb de ce coté là. Par contre, j'ai voulu définir
pb classe new et delete [ par mat74 ]
salut a ts j'ai encore un pb avec les classescomment je pourrai faire sa :class teste {public: int x; void augmenter() {x++;} void detruire(test
pb classes avec tableau [ par JediMaster ]
je voudrais crée une classe comme celle ci avec un tableau qui aurit sa taille qui varirais selon l'objet j' ai donc fait un construteurclass classe{
importer une classe dans une dll [ par ilimo ]
bonjour : j'ai deux programmes : Pa Pb Pa contient la classe Ca Pb contient la classe Cb Pb est une dll pour Pa comment importer la classe Cb dans la
pb d'enregistrement de classe [ par treets ]
Bonjour,Je suis en train d'étudier le streaming vidéo et j'ai écrit un prgm pour tester les fonctions de WMencoderSDK.Mon prg compile et linke bien.Pa
pb inclusions VS [ par magic_Nono ]
Bjje suis sur un gros projet ou on a fait une modification de fondet maintenant le prog compile si il veutie en fonction de l'ordre ou il integre les
Problème de cast avec template [ par xkamen ]
Bonjour,Je voudrais travailler avec des templates. J'ai créé une classe template Matrix; et je voudrais savoir comment réaliser un cast dans mon progr
Petit Pb avec une classe de lecture de fichier [ par EagleEye ]
Bonjour les gens :)Et bien voilà mon petit pb :x j'ai une classe qui va lire un fichier xml, du type Xml(string filename) dc ds mon constructeur je fa
Pb de Multi héritage [ par bach58 ]
Je veux définir une classe Z qui hérite d'une autre classe A par deux voies différentes :class A{ int a; ....}class X:A ..{..}class Y:A... {...}
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|