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 :

[notation] Noms des parametres du constructeur


Sujet :

C++

  1. #61
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    http://cpp.developpez.com/faq/cpp/?p...eurs_interdits

    Effectivement, le préfixage par _ est rarement une bonne idée. Certains sont passés au postfixage, mais je n'aime pas non plus : C'est trop dur à lire ou à prononcer à voix haute.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  2. #62
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 781
    Points
    36 781
    Par défaut
    Citation Envoyé par Klaim Voir le message
    Juste une question sur la notation des membres avec un "_" en préfixe, qui a été évoqué il y a quelques pages :
    J'ai lu sur un autre forum (et il me semble dans un ou deux bouquins) que c'était réservé aux implémentations de la STL ou quelque chose de ce gout là. En fait il me semble que c'est plutot "__" qui est réservé.

    Est-ce que quelqu'un ayant le standard pourrait confirmer?

    Si c'est bien vrai pour "_", alors son utilisation comme préfix pour nommer les membres est potentiellement dangereuse, non?
    La portée du nom des membres d'une classe est limitée à la classe. Je ne vois pas trop l'intérêt de les préfixer de façon particulière: quels sont les risques de collisions qu'on chercherait à prévenir?.

    Par contre "__" est réservé par ISO C++ pour préfixer des mots clés d'une implémentation du compilateur qui aurait des extensions non standards.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #63
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    http://cpp.developpez.com/faq/cpp/?p...eurs_interdits

    Effectivement, le préfixage par _ est rarement une bonne idée. Certains sont passés au postfixage, mais je n'aime pas non plus : C'est trop dur à lire ou à prononcer à voix haute.
    En tout cas ya quelques mois, je me suis laissé par ton "my", et ça a été une expérience plutôt agréable .

  4. #64
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Pas d'avis sur les différents type d'implémentation?
    http://www.developpez.net/forums/sho...9&postcount=44

    ps: r0d si ca n'as vraiment rien avoir avec ton sujet de départ, dit le moi je déplacerais dans un nouveau thread.

  5. #65
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Si. Il faut voir le contexte -- à quoi cela va servir.
    La norme d'un point serait mieux libre, vu que de toutes façons il faudra bien exposer les deux propriétés que x et y.
    Je distinguerais point et différence-entre-2-points.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #66
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Une différence entre points serait un vecteur.
    Quant au "vecteur position" d'un point, c'est la différence entre ce point et l'origine.
    Et les opérations:
    • point + vecteur = point
    • point - vecteur = point
    • point + point INTERDIT!
    • point - point = vecteur
    • vecteur + vecteur = vecteur
    • vecteur - vecteur = vecteur
    • point * nombre INTERDIT!
    • vecteur * nombre = vecteur.
    • ProdScalaire(vecteur, vecteur) = nombre
    • ProdVectoriel(vecteur, vecteur) = vecteur //Le produit vectoriel existe-t-il en 2D ??

    L'arithmétique entre points et vecteurs, ressemble beaucoup à l'arithmétique entre pointeurs et entiers...
    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.

  7. #67
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    D'ailleurs pour en revenir à ce choix entre les 3 possibilités, que pensez-vous de ce qui est écrit dans la FAQ concernant la convention suivate : utiliser class pour du POD qui a besoin d'un constructeur, et réserver struct pour les structures très simples de type C ?

    Pour mon type Complex, j'ai finalement choisi une classe avec membres publiques. Si je m'aperçois que je ne suis jamais amené à modifier mes vecteurs de complexes après leur création, je passerai ces membres en const et le tour sera joué. Merci pour votre aide à tous

  8. #68
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par Estyros Voir le message
    Pour mon type Complex, j'ai finalement choisi une classe avec membres publiques.
    Donc une struct en C++
    En C++, struct est une class public

  9. #69
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    C'est vrai, j'ai appris ça récemment, mais on en revient à mon autre interrogation : quid de la convention citée dans la FAQ, qui veut qu'une structure qui a besoin d'un constructeur ou de fonctions membres (operateurs dans mon cas) soit systématiquement codée sous la forme d'une classe avec membres publics ?

  10. #70
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    C'est pour ne pas choquer les esprits. Maintenant, je n'accorde plus trop d'importance à cela.
    Car en plus, quid des agrégations de données (à la C) qui ne sont pas POD ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  11. #71
    Membre éclairé

    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 837
    Points
    837
    Par défaut
    Citation Envoyé par r0d Voir le message
    Bonjour à tous,

    j'ai une question un peu bête, mais je suis curieux de savoir comment vous faites.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Point
    {
       Point( int x = 0, int y = 0 ) : x(x), y(y) {}
       int x;
       int y;
    };
    Or, la sémantique est importante. Et dans mon cas, je veux que x et y restent en accès public.

    Vous voyez ce que je veux dire? Comment résolvez-vous ce problème?
    Dans un langage a prototypes, au lieu de constructeurs tu aurais par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Point = struct(x <= 0.0, y <= 0.0);
    A = Point(x <= 3.0, y <= 1.5);
    B = A(x <= -2.0);             // B.x = -2.0, B.y = 1.5
    Est-ce que c'est pas plus simple?

    (promo: dodo langage a prototypes)

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/02/2015, 08h21
  2. Ninject Constructeur sans le nom du parametre
    Par mariox dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 05/10/2012, 09h34
  3. Réponses: 7
    Dernier message: 27/05/2011, 17h58
  4. Comment passer des parametres au constructeur d'un service?
    Par jnc65 dans le forum Windows Communication Foundation
    Réponses: 2
    Dernier message: 06/08/2009, 20h41
  5. Recuperation du nom des parametres
    Par Sebastien_INR59 dans le forum Général Java
    Réponses: 16
    Dernier message: 13/10/2007, 23h28

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