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

Visual C++ Discussion :

Tester l'existence d'un objet


Sujet :

Visual C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut Tester l'existence d'un objet
    J'aimerai savoir comment tester l'existance d'un objet.

    ex:

    Soit la classe suivante...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ref class Personne 
    {
        private :
            String ^ Nom;
            String ^ Prenom;
            unsigned int Age;
     
        public :
            Personne();
    };
    Plus tard dans mon code je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(une condition quelconque)
    {
      Personne ^MrX = gcnew Personne();
      MrX->Nom = "X";
      MrX->Prénom = "Jean-Rufus"
       MrX->Age = 34;
    }
    Puis j'aimerai copier MrX dans MrY si MrX existe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(Tester l existance de MrX et de ses attributs)
    { 
        Personne ^ MrY = gcnew Personne();
         MrY = MrX;   
    }
    Donc voilà, comment tester l'existance de MrX, et être sur que ses attributs sont remplis (que l'on a pas fait seulement un "gcnew") ...

    merci..

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    en initialisant les arguments dans le constructeur...:
    par exemple en mettant l'age à 999 par défaut.
    sachant que par défaut tous les types simples sont des objets initialisés à 0 .

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    Donc, il n'y a pas d'autre moyen que de tester les données membres de l'objet...

    On ne peut pas tester l'objet directement ? (notament, si les données membres sont privates..)

  4. #4
    Membre du Club
    Inscrit en
    Juin 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 51
    Points : 43
    Points
    43
    Par défaut
    Tu peux faire un accesseur si tes données membres sont privées.

    A.GetAge(); te renvoit la valeur de la donnée membre Age.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    OK..donc je dois tester les données, et pas l'objet directement...

    Merci !

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    re,
    si tu veux tester l'objet lui même tu peux écrire ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Personne ^MrX;
    //...
    if(MrX!=nullptr)
    {
    }

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    J'ai essayé ca, mais j'ai droit à un :

    error C2088: '!=' : non conforme pour struct

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    hum bizarre il dit struct comme si tu n'utilisais pas une ref class ...

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 222
    Points : 110
    Points
    110
    Par défaut
    Ouais, mais je pense que ça vient de là....

    En effet, mon MrX n'est pas un "Personne ^" mais un "gcroot<Personne ^>" parceque je mélange classe managée et non managée...

    Je vais tester la valeur de la donnée membres, c'est aussi efficace...
    Sauf que bien évidement, si j'ai pas fait de "gcnew" ca risque de planter....

    Je fais ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(MrX->Nom != nullptr)
    {
    }

  10. #10
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    il faut tester comme ca avec gcroot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (nullptr == static_cast<Personne ^>(MrX))

Discussions similaires

  1. Tester l'existence d'un objet
    Par nicogigo dans le forum Tkinter
    Réponses: 6
    Dernier message: 25/04/2024, 17h14
  2. [1.x] Comment tester l'existence d'une méthode sur un objet
    Par jekif dans le forum Symfony
    Réponses: 0
    Dernier message: 02/11/2011, 11h48
  3. Comment tester l'existance d'un fichier sans instancier un objet File?
    Par Hamdi Hedhili dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/08/2007, 12h13
  4. [débutant] Tester l'existence d'un objet
    Par guidav dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2007, 19h53
  5. [C#][1.1] - Comment tester l'existence d'un objet.
    Par RamDevTeam dans le forum Windows Forms
    Réponses: 10
    Dernier message: 08/07/2006, 13h28

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