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 :

[Novice] vérifier l'initialisation d'un élément..


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Par défaut [Novice] vérifier l'initialisation d'un élément..
    Bonjour,

    Ma question va certainement vous sembler triviale mais, découvrant le C++ après java, ça ne l'est pas du tout pour moi ^^.

    J'ai une structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct _MPoint
    {
    	WORD wStatus;
    	WORD wIndex;
    ...
    } MPointElement;
    Je m'en sors bien, jusqu'au moment où je veux simplement tester si un représentant p1 de cette structure a été initialisé. J'ai essayé naïvement un p1 != NULL, ça ne marche pas. Aucun opérateur n'accepte la comparaison partie gauche du type MPointElement etc...
    Je me sens pas malin, merci pour votre aide ^^.

  2. #2
    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
    Bonjour,
    Ça ne peut pas se tester en C++. C'est une des raisons pour lesquelles le C et le C++ sont des langages qui ne pardonnent pas.

    Le plus proche que tu puisses faire, c'est ajouter un constructeur par défaut dans ta structure, qui initialise systématiquement le contenu.
    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.

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Par défaut
    Je vois -_-, merci bien.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    en C++ on commencerait plutôt comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    struct MPoint
    {
     int status;
     int index;
    };
    voire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class MPoint
    {
    //...
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    typedef struct _MPoint
    est la manière de déclarer une structure en C ( pas en C++ ). Mettre un "_" au début d'un nom de variable est déconseillé car ce sont des noms réservés.

    si je ne m'abuse, DWORD, c'est du spécifique windows, il faut que tu sois conscient que ça n'est pas standard ( ni en C, ni en C++ ).

    pour déclarer une variable de ce type:

    Dans quel cas tu veux tester en fait?

  5. #5
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 31
    Par défaut
    Mes structures sont en C oui, et elles ne dépendent pas de moi. C'est en fait des structures "partagée" définies par un autre programme (un pilote). Mon expérience étant réduite en C/C++, je n'ai pas osé modifier leurs déclarations (mais je vais essayer ^^).
    Edit : bon bah passer à la première solution n'a rien fait de mal ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct MPointElement
    {
    	WORD wStatus;
    	WORD wIndex;
    ...
    };
    D'ailleurs mon programme a beau être en C++, il n'est pas structuré en classe mais j'utilise des choses comme des vecteurs ou des objets XML. Et je suis bien à 100% sous windows, cette histoire de DWORD m'a assez déconcerté au début... Mais ce n'est rien de plus qu'un unsigned long si j'ai bien suivi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 09/06/2008, 09h57
  2. Réponses: 8
    Dernier message: 16/03/2008, 21h02
  3. [DOM] vérifier l'existence d'un élément
    Par typikal dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2008, 16h18
  4. Réponses: 2
    Dernier message: 22/09/2006, 13h57
  5. Vérifier l'initialisation d'une variable
    Par homeostasie dans le forum C
    Réponses: 11
    Dernier message: 04/08/2006, 18h05

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