IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Equivalent instanceof java


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut Equivalent instanceof java
    Bonjour,
    Quel est l'�quivalent d'instance of en java ?
    Merci,

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Salut,
    Tu dois pouvoir t'en sortir avec typeid.

  3. #3
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Pourquoi faire ? (je sens la red�finition de choses comme isEquals � 3km, d'o� ma question)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Le dynamic_cast<> du C++, utilis� sur un pointeur, sert � la fois de instanceof et de cast qui ne lance pas d'exception en cas d'�chec.
    Par contre, utilis� sur une r�f�rence, il agit comme le cast de java, et lance une exception std::bad_cast si le type ne correspond pas.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut
    Merci pour vos r�ponses !
    En effet j'ai essay� avec typeid et ca fonctionne.
    Pour quoi faire ?
    Et bien en fait je fais un traitement avec des �l�ments d'une liste. Ces �l�ments sont cens�s �tre tous d'un m�me type (non primitif) mais on ne sait jamais, je pr�f�re tout de m�me v�rifier ...
    J'ai regard� un exemple avec dynamic_cast et c'est similaire non ?

  6. #6
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Oublie C, Pascal et Java.
    Le typage du C++ est plus pouss� pour ce genre de choses. On utilise les template. D'ailleurs si ce n'est pas pour un exo, utilise std::list<> si tu veux une liste chain�e.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut
    Les template en C++ c'est pareil que la g�n�ricit� en java non ?
    Et ce ne sont pas des listes que j'ai cr�� mais des listes d�j� existantes, qui sont suppos�es contenir les m�mes �l�ments mais par pr�caution je v�rifie ce qu'elles contiennent, ce qui explique pourquoi je ne peux pas utiliser les templates.

  8. #8
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par d�faut
    Les template en C++ c'est pareil que la g�n�ricit� en java non ?
    Pour faire simple, la g�n�ricit� en java est un sous ensemble des templates C++ .

    Pour ce qui a �t� dit, tu peux effectivement utiliser typeid pour �muler instanceof.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    if(typeif(ma_variable) == typeid(int) )
      // ma_variable est un int
    Si tu as des pointeurs, mieux vaut faire un dynamic_cast :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    MaClasse* monPtr = dynamic_cast<MaClasse*>(ma_variable);
    if(monPtr != NULL)
      // ma_variable est de type MaClasse*
    Cela dit, je ne comprends pas trop pourquoi tu as besoin de "v�rifier ce que ta liste contient" ? C'est un truc cod� "C-style" avec des void* dans tous les sens ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut
    Ok, merci !
    Dans ce cas j'opterai pour le dynamic_cast alors.
    J'ai besoin de v�rifier, car ce que retourne ma liste est de type (void *), ce qui fait qu'il est n�cessaire de caster avec mon type. Tous les objets sont cens�s �tre du m�me type mais c'est parce qu'en cours, on me r�p�te de toujours v�rifier les cas d'erreur .

    [EDIT]
    Ben en fait �a marche pas...
    Ca me retourne : "Le type void n'est pas une classe d�finit avec des fonctions virtuelles"
    Je suis sous Borland �a y change quelque chose ?

  10. #10
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    On ne peut pas utiliser dynamic_cast avec void*: Il faut au moins l'utiliser sur une classe, contenant des fonctions virtuelles.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  11. #11
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Contrairement aux templates, tu ne pourras jamais rien v�rifier avec des void*...

    Tu es oblig� d'utiliser cette solution C? (comprendre: as-tu le droit de mettre aux oubliettes cette approche ant�diluvienne pour faire vraiment du C++?)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut
    O� je suis malheureusement oblig� d'utiliser cette solution (quoique je vais voir quand m�me parce que �a m'emb�te de laisser �a comme �a ... ).
    Pour l'instant je vais laisser �a sans v�rifier ce que je r�cup�re, dommage.
    Merci pour votre aide !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Equivalent Applet Java en .Net
    Par Aurazed dans le forum G�n�ral Dotnet
    R�ponses: 6
    Dernier message: 27/04/2009, 17h33
  2. equivalent en java de XMLsocket
    Par orelero dans le forum G�n�ral Java
    R�ponses: 4
    Dernier message: 31/08/2006, 15h03
  3. Equivalent des Java Hashmap en Visual c++
    Par Sallie dans le forum MFC
    R�ponses: 10
    Dernier message: 12/05/2006, 10h20
  4. Equivalent des Java Hashmap en c++
    Par Sallie dans le forum C++
    R�ponses: 4
    Dernier message: 11/05/2006, 17h58
  5. [JNDI] Equivalent avec Java Web Start ?
    Par cameleon2002 dans le forum Java EE
    R�ponses: 8
    Dernier message: 18/09/2003, 18h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo