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 :

Compréhension de quelques lignes de code


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut Compréhension de quelques lignes de code
    Bonjour, débutant en C++ je cherche à modifier quelques lignes de codes mais elles sont écrites de manière trop condensées et je n'y comprends rien...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct u : field_functor <u,point > {
    point operator () ( const point & x) const {
    return (d == 1) ? point (u0) : point (x[1] , -x [0]); }
    u ( size_t d1) : d(d1), u0 (0.5/ acos ( Float ( -1))) {}
    protected : size_t d; Float u0;
    };
    il doit permettre de définir une fonction u(x,t) différente selon la dimension d=1,2 ou 3. Quelqu'un pourrait-il commenter ces lignes pour les rendre plus compréhensibles?
    Merci!

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    struct u : field_functor <u,point > {
    };
    Cette partie fait penser à un CRTP, ou héritage statique. C'est une technique qui permet de bénéficier des méthodes de field_functor dans la struct u sans le surcoût d'un héritage dynamique (donc via des méthodes virtual). Mais globalement l'intérêt reste le même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    point operator () ( const point & x) const {
      return (d == 1) ? point (u0) : point (x[1] , -x [0]); 
    }
    Surcharge de l'opérateur parenthèses, qui permet une utilisation de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    u objU;
    const point pt0(...);
    point pt1 = objU(pt0);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    u ( size_t d1) : d(d1), u0 (0.5/ acos ( Float ( -1))) {}
    Constructeur qui initialise les attributs d et u0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected : size_t d; Float u0;
    Les attributs en question.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 7
    Par défaut merci!
    Super merci...

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

Discussions similaires

  1. compréhension d'une ligne de code
    Par magicsmacks dans le forum Débuter
    Réponses: 4
    Dernier message: 26/10/2012, 09h22
  2. [API HTML5] [Article] Canvas : réaliser une bannière animée en quelques lignes de code
    Par Bovino dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 06/06/2012, 13h26
  3. [POO] Compréhension d'une ligne de code
    Par Carb0 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/11/2008, 10h23
  4. Petit problème de compréhension d'une ligne de code
    Par totoc1001 dans le forum Images
    Réponses: 3
    Dernier message: 12/03/2007, 21h44

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