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++/CLI Discussion :

Test de nullptr


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Test de nullptr
    bonjour
    J'ai mis un test pour initialiser des variables( de type int)
    J'ai donc codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    							if( pNewElemnt->Values[2] == nullptr)
    								pNewElemnt->Values[2] = 0;
    							if( pNewElemnt->Values[1] == nullptr)
    								pNewElemnt->Values[1] = 0;
    et le compilateur me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    1>..\..\..\Linguistic\Coherence\src\BuildComponents.cpp(2558): error C2446: '=='*: pas de conversion de 'nullptr' en 'int'
    1>          nullptr ne peut être converti qu'en types pointeur ou de handles
    1>..\..\..\Linguistic\Coherence\src\BuildComponents.cpp(2560): error C2446: '=='*: pas de conversion de 'nullptr' en 'int'
    1>          nullptr ne peut être converti qu'en types pointeur ou de handles
    1>
    comment tester des valeurs non initialises?
    qui m'aidera sera

  2. #2
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut en remplacent
    En remplacent nullptr par NULL ça arrange les choses
    mais il reste des problèmes
    le code est devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    							pNewElemnt->Values[2] = gcnew Int32();
    							if( pNewElemnt->Values[2] == NULL)
    								pNewElemnt->Values[2] = 0;
    							if( pNewElemnt->Values[1] == NULL)
    								pNewElemnt->Values[1] = 0;
    							pNewObject->max = pNewElemnt->Values[2];
    							pNewObject->min = pNewElemnt->Values[1];
    et il me jette sur la première instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    1>..\..\..\Linguistic\Coherence\src\BuildComponents.cpp(2558): error C2440: '='*: impossible de convertir de 'System::Int32 ^' en 'int'
    1>          Aucun opérateur de conversion défini par l'utilisateur disponible, ou
    1>          Aucun contexte dans lequel cette conversion est possible

  3. #3
    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
    Les ints ne sont pas des pointeurs. Ils ne peuvent pas être nullptr, mais ils peuvent être zéro.

    Si tu veux des ints qui peuvent être null, tu peux utiliser des System::Nullable<int>.
    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.

  4. #4
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Merci
    Mais ça ne parle pas du gcnew?
    J'ai éssayé System::Nullable<int>:
    le code est devenu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    							if( pNewElemnt->Values[2] == System::Nullable<int>)
    								pNewElemnt->Values[2] = 0;
    							if( pNewElemnt->Values[1] == System::Nullable<int>)
    								pNewElemnt->Values[1] = 0;
    							pNewObject->max = pNewElemnt->Values[2];
    							pNewObject->min = pNewElemnt->Values[1];
    							pNewObject->nValue = 2;
    							pNewObject->step = 1;
    							bIsProcessed = true;
    							pRefObject = pNewObject;
    le compilateur n'a pas aimé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1>..\..\..\Linguistic\Coherence\src\BuildComponents.cpp(2558): error C2275: 'System::Nullable<T>'*: utilisation non conforme de ce type comme expression
    1>          with
    1>          [
    1>              T=int
    1>          ]
    1>..\..\..\Linguistic\Coherence\src\BuildComponents.cpp(2560): error C2275: 'System::Nullable<T>'*: utilisation non conforme de ce type comme expression
    1>          with
    1>          [
    1>              T=int
    1>          ]

  5. #5
    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

    Indice n°1: System::Nullable<int> est un type de données. Une classe.
    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.

  6. #6
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut ???
    ???

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

Discussions similaires

  1. Script test de deux chaine avec if
    Par kacedda dans le forum Linux
    Réponses: 6
    Dernier message: 02/05/2003, 15h38
  2. [XMLRAD] test de nullité
    Par Pm dans le forum XMLRAD
    Réponses: 5
    Dernier message: 29/11/2002, 10h57
  3. test collisions
    Par tatakinawa dans le forum OpenGL
    Réponses: 5
    Dernier message: 08/06/2002, 06h03

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