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 :

c'est quoi le "?"


Sujet :

C++

  1. #1
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut c'est quoi le "?"
    salut tout le monde . je veux juste savoir la signification de ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Bloc::Bloc( int c, int s, const char* tab, int redRate, int greenRate, int blueRate, const char* tuile_image ) : index_( c ), size_( s ), redRate_( redRate ), 
    greenRate_( greenRate ), blueRate_( blueRate )
    {
        for ( ; *tab; ++tab )
    	    data_.push_back( (*tab=='1')?1:0 );

    en fait il s'agit d'un constructeur pour une une class Bloc mais je comprend pas surtout le "data_.push_back( (*tab=='1')?1:0 );"

    c'est quoi ce point d'interrogation ? qu'est ce que on met dans le vector data_ ?

  2. #2
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    (condition) ? (expression à utiliser si condition est true) : (expression à utiliser sicondition false)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    data_.push_back( (*tab=='1')?1:0 );
    revient donc à écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (*tab=='1')
       data_.push_back(1);
    else 
       data_.push_back(0);
    PS : ?: est le seul opérateur ternaire du C++ ! ça se fête ! comme le nouvel an !

  3. #3
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut
    merci Pacorabanix quelle vistesse de reponse !!!
    desolé mais j'ai pas compris c'est quoi un operateur ternaire?

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Un opérateur qui a trois paramètres ( = est un opérateur binaire, + et - peuvent être unaires ou binaires)

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Un opérateur unaire est un opérateur qui est utilisé avec une seule expression.
    Exemple : !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!condition) // !condition vaut true si condition vaut false et false si condition vaut true
    Un opérateur binaire met en relation deux objets.
    Exemple : ==
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(i==j) // i==j vaut 1 si i et j ont la même valeur, 0 sinon
    Un opérateur ternaire met en relation 3 objets.
    Exemple : ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (condition) ? instruction 1 : instruction 2; // exécute 'instruction 1' si condition vaut true et 'instruction 2' si condition vaut false

  6. #6
    Membre expérimenté
    Profil pro
    Dev
    Inscrit en
    Décembre 2007
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dev

    Informations forums :
    Inscription : Décembre 2007
    Messages : 191
    Par défaut
    ben j'étais là au bon moment

    operateur ternaire = qui prend trois arguments.
    (binaire pour 2 et unaire pour 1)

    ex :

    +, - et >> , . ou [] sont des exemples d'opérateurs binaires :

    monInt + 2
    monInt - unAutreInt
    cout << "Salut!"
    monObjet.uneMethode()
    monTableau[index]

    ++ est un exemple d'opérateur unaire

    ++i

    EDIT : arf j'arrivais plus à me souvenir de l'autre exemple d'opérateur unaire très simple, le ! . Merci ^

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    ternaire : opérateur à 3 opérandes (exemple : opérateur ? ).
    unaire : opérateur à une opérande (exemple : opérateur ++ )
    binaire : opérateur à deux opérandes (exemple : opérateur + )

  8. #8
    Membre éclairé Avatar de guitariste
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 245
    Par défaut
    je vois c'est quoi maintenant ...merci .

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

Discussions similaires

  1. [sbadecoder a dit].. C'est quoi pour vous un beau programme?
    Par seb.49 dans le forum Langages de programmation
    Réponses: 14
    Dernier message: 13/02/2004, 10h41
  2. C'est quoi XMLRAD ?
    Par laffreuxthomas dans le forum XMLRAD
    Réponses: 10
    Dernier message: 09/08/2003, 02h42
  3. C'est quoi "Profile" dans le assign du XMLGram ?
    Par Lux interior dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/02/2003, 11h37
  4. C'est quoi exactement un générateur d'états
    Par Henry Cesbron Lavau dans le forum Outils de restitution et d'analyse
    Réponses: 0
    Dernier message: 02/04/2002, 19h15

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