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 :

Interêt propriétés privés - getter/setter public


Sujet :

C++

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut Interêt propriétés privés - getter/setter public
    Bonjour,

    Je me familiarise peu à peu avec un projet développé par des personnes qui ne sont plus dans la société. Et je me pose une question :

    Quel est l'intérêt de créer des propriétés privés dans une classe si dans cette même classe des getter/setter publics sont systématiquement créés pour ces propriétés ?


    Code l'entête : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    class CCaracteristquesObjet  
    {
    public:
    	CCaracteristquesObjet();
    	virtual ~CCaracteristquesObjet();
     
    	double GetHauteur();
    	void SetHauteur(double value);
     
    	double GetLargeur();
    	void SetLargeur(double value);
     
    protected:
    	double m_dHauteur;
    	double m_dEmprise;
    };

    Code Un getter/setter type trouvé partout dans le code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    double CCaracteristquesObjet::GetHauteur()
    {
    	return m_dHauteur;
    }
     
    void CCaracteristquesObjet::SetHauteur(double value)
    {
    	m_dHauteur= value;
    }


    Personnellement, j'aurais tendance à considérer comme équivalent et plus simple de supprimer les getter/setter et d'avoir des propriétés publiques.

    Est-ce que dans certains cas, tel que sont ces getter/setter ou après quelques légères modifications, il y aurait un réel intérêt de créer de getter/setter de cette façon ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Argh de la notation hongroise !

  3. #3
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Y'a pas de réel intérêt, si ce n'est l'encapsulation à tout prix dans ton cas.
    On pourrait considérer que ce n'est pas normal d'avoir accès à des variables directement car tu en fais ce que tu en veux. L'intérêt d'avoir des méthodes est le contrôle. Tu ne laisses pas le client de ta classe faire n'importe quoi. Tout est correctement initialisé, et la classe respecte ses préconditions, postconditions et invariants.

    Dans certains cas, il arrive cependant qu'on laisse des variables publiques, mais ce sont des pratiques à éviter, globalement.

    Hope it helps !

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 404
    Par défaut
    L'avantage, c'est que tu peux à tout moment changer ce qu'il y a "sous le capot".
    Comme par exemple, rajouter un contrôle si tu n'accepte que les valeurs positives, etc.

    Par contre, je conseillerais de toujours implémenter ces accesseurs en inline, ainsi il n'y aura pas d'impact sur la performance.
    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.

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Oui enfin de toute façon c'est le compilo qui décide alors... C'est quand même un peu mitigé cet "inline"...

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 404
    Par défaut
    En effet, mais si la fonction est dans un autre fichier source, le compilo ne pourra absolument pas l'inliner.
    Donc, il faut lui donner au moins la possibilité de le faire.
    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. #7
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 311
    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 311
    Par défaut
    Si c'est pour faire des accesseurs/mutateurs inlinables, on perd un peu de l'intérêt de la chose à faire de simples copies.

    Bref, tout cela a déjà été discuté à maintes reprises => recherche
    De plus, c'est traité dans la FAQ...
    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...

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 404
    Par défaut
    On peut toujours les garder inline tant qu'on ne les complique pas, puis les passer non-inline dès qu'on fait un truc compliqué dedans...

    D'une manière générale, le getter sera facilement inline puisqu'on y fait rarement une validation des données.
    Par contre, le setter peut faire l'objet de contrôles plus compliqués.
    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.

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    J'ai cherché, mais je n'ai pas trouvé.

    Dans la FAQ, les accesseurs sont traités, mais cela n'apporte pas une réponse clair à ma question.

    Je suis tombé sur une discussion sur le sujet précisément après coup. Apparemment c'est un débat de fond qui tombe régulièrement, dans les autres sujets. En gros, le sujet annexe récurrent.

    Au moins, j'aurais eu une réponse claire, même si on dérive vite... Merci

  10. #10
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 311
    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 311
    Par défaut
    Sauf qu'il ne peut pas avoir pas y raison de réponse complète qui tienne en moins d'une page ...

    Citation Envoyé par poukill Voir le message
    Y'a pas de réel intérêt, si ce n'est l'encapsulation à tout prix dans ton cas.
    Il n'encapsule rien du tout. Il expose au contraire toutes ses variables membres.

    Il faut commencer par distinguer variables membres et propriétés. Après on peut parler sérieusement.
    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. #11
    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
    Qui plus est, il n'y a pas de réponse ultime à cette question.

    Pourquoi ? Cela dépend de la nature de ton attribut, entre autres. Tu voudras parfois faire des vérifications avant donner la main au code qui veut s'en servir, d'autres fois des vérifications avant de changer sa valeur.

    Par contre, quelle que soit la nature, un avantage de mettre un couple getter/setter est que l'on peut changer le code facilement, et que cela se répercutera sur tout ton programme. En effet, si tu travaillais directement sur l'attribut en public, tu devrais modifier chaque code appelant, ce qui risquerait d'être assez long et désagréable.

  12. #12
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Citation Envoyé par poukill Voir le message
    Oui enfin de toute façon c'est le compilo qui décide alors... C'est quand même un peu mitigé cet "inline"...
    Je suis pas d'accord, on arrive a savoir assez facilement ce que parviendra ou pas le compilateur à inliner. Dans ce cas, il n'y a aucun doute (je peux me tromper mais bon...) sur le fait qu'il y arrivera.

    Si on ne pouvait pas être sûr de certains inline, les bases de la métaprog seraient remises en cause. (en fait, par "c'est le compilo qui décide", il faut plutôt entendre "le compilateur n'est pas censé indiquer une erreur lorsqu'un inline est impossible à effectuer").

    Jérôme, pour la réponse, celles que Médinoc et Luc t'ont donné me semblent relativement claires :

    Dans l'état actuel, cette encapsulation ne sert à rien, mais si dans le futur on souhaite contrôler un peu mieux l'accès à la donnée (ajouter un contrôle pour ne pas la rendre inférieure à zéro par exemple), on pourra le faire facilement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    inline double
    CCaracteristquesObjet::GetHauteur() const
    {
      return m_dHauteur;
    }
     
    inline void
    CCaracteristquesObjet::SetHauteur(double value)
    {
      if (value >= 0.)
        m_dHauteur= value;
    }
    Le concept de propriété évoqué par Luc me semble intéressant. Luc, disposes-tu d'une définition claire ?

  13. #13
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    A vrai dire, le débat fait rage parce qu'il pose la question de choisir entre pérénité et controle VS rapidité potentielle d'exécution (pas si potentielle que cela, en fait )

    J'aurais, mais ce n'est qu'un avis perso , personnellement tendance à préférer les accesseurs/mutateurs dés le moments où je devrais créer une structure disposant de plusieurs données de type identique et, pire encore, si je ne sais pas à la base combien de donnée de meme type seront utilisées...

    Cela me permettra, entre autre, de péréniser l'ensemble du code qui sera basé sur cette structure, tout en me permettant de changer d'optique de maintient en mémoire (passer plus facilement, par exemple de deux variables séparée à un tableau "C style", à un vecteur, une liste ou n'importe quel autre conteneur )

    Pour les variables "uniques" (entend par là, les variables qui sont les seules d'un type donné dans la structure ), je dirais qu'il faut voir si tu accepte l'idée qu'elle soit modifiée "de l'extérieur" ou non, de voir le controle que tu veux imposer sur les modifications et de pondérer la réponse avec le controle le type en lui-même permet déjà, afin de décider s'il faut améliorer le controle sur la donnée (auquel cas, on passerait sur une variable private ou protected et sur un couple d'accesseur/mutateur... ou peut etre l'un des deux seulement ) ou si tu estimes que le controle est suffisant (auquel cas, elle peut très bien rester publique )

    Mais j'ai bien conscience que cette optique reste très abstraite et très personnelle, et donc, en gros, la meilleure réponse que tu pourra sans doute obtenir tourne autour du "ca reste à toi de l'évaluer à chaque fois"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  14. #14
    Membre expérimenté Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Par défaut
    Citation Envoyé par koala01 Voir le message
    A vrai dire, le débat fait rage parce qu'il pose la question de choisir entre pérénité et controle VS rapidité potentielle d'exécution (pas si potentielle que cela, en fait )
    Encore un debat bien inutile, s'il fait rage.

    Ca fait des années que les compilateurs savent parfaitement inliner des trucs aussi simple que des accesseurs / mutateurs.

    Et pour ceux qui n'y croient pas( vous avez tort), il reste toujours forceinline ( __forceinline sous vc++, __attribute__(( always_inline)) sous g++ ), qui vous quaranti des perfs identiques a une variable publique...

  15. #15
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 404
    Par défaut
    Par contre, comme je l'ai dit, il faut qu'ils soient accessibles pour être inlinables.

    Donc, soit ils sont définis dans chaque unité de compilation (typiquement en inline dans le fichier header, plutôt que dans un namespace anonyme), soit la génération de code à l'édition de liens (link-time code generation) doit être activée.
    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.

  16. #16
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Je n'ai jamais dit qu'il était utile ou non stérile... j'ai dit que l'on rencontre régulièrement des gens qui se "chamaillent" sur la question...

    Personnellement, je me demande d'ailleurs si perdre, en définitive et au pire quelques fréquences d'horloges représente réellement un drame par rapport au fait de devoir reparcourrir tout un code parce qu'on a, tout simplement, décidé de changer son fusil d'épaule concernant la manière dont certaines données sont maintenues au sein d'une structure...

    Autant le dire: je fais partie de ceux qui préfèrent la pérénité du code
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  17. #17
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    Bonjour,

    Tout d'abord merci pour toutes ces réponses.

    Même si la réponse de Luc n'est pas la plus claire, c'est celle qui finalement m'aide le plus. Elle m'a permis de creuser un peu tout ces concepts d'objets, interface, propriétés, ainsi que par ailleurs les classes, structures, variables membres et getter/setter.

    J'ai l'impression que tout tient dans le fait de concevoir ou non en programmation orientée objet, la carte n'est pas le territoire, et l'instance de classe n'est pas l'objet. Avoir des classes, des variables membres privés et des getter/setter ne fait pas forcément un programme orienté objet.

    Si j'ai bien compris ce que vous avez dit, c'est au programmeur de faire de l'objet. S'il ne fait pas de l'objet, juste des classes, car les classes c'est bien (autant que les structures), les getter/setter tel que je les ai décrits sont un artifice inutile.

    Est-ce que je commet une hérésie en voulant résumant le problème ainsi en moins d'une page ?

  18. #18
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 311
    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 311
    Par défaut
    Citation Envoyé par Jérôme_C Voir le message
    Même si la réponse de Luc n'est pas la plus claire, c'est celle qui finalement m'aide le plus.
    Laquelle ? S'il n'y en a qu'une à retenir, c'est celle-là:
    Citation Envoyé par lh
    Il faut commencer par distinguer variables membres et propriétés. Après on peut parler sérieusement.
    (C'est sûr qu'il faut faire un peu de recherche après. La FAQ étant un point de départ)

    Citation Envoyé par Jérôme_C Voir le message
    Avoir des classes, des variables membres privés et des getter/setter ne fait pas forcément un programme orienté objet.
    Oui. Parfaitement.

    Citation Envoyé par Jérôme_C Voir le message
    Est-ce que je commet une hérésie en voulant résumant le problème ainsi en moins d'une page ?
    Pas une hérésie. Mais il y a tellement d'aspects connexes qui vont orienter vers des accesseurs et pas de mutateurs, ou le contraire, ou rien.
    -> immuabilité
    -> propriétés internes à des hiérarchies
    -> invariants
    -> véritables services rendus vs couplage qui va chercher les données membres (ie rupture d'encapsulation)
    -> etc

    Même les javaistes ont des débats sans fin. Ils ont des frameworks qui les poussent à des couples accesseurs/mutateurs dans tous les sens. Et certains se rendent bien compte que c'est ridicule avec les classes qui au fond ne sont que des structures agrégeant des données sans fournir d'autre service.


    Quant à l'inlining ... c'est d'un non pertinent. D'abord avoir un programme dont le design tient la route. Ensuite, on optimise ce qui l'est quand c'est reconnu comme point faible.
    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...

  19. #19
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 214
    Par défaut
    Luc, c'était bien de cette réponse dont je parlais.

    La FAQ m'a été d'un grand secours...


    Je crois avoir bien compris l'aspect lecture seule, lecture-écriture. J'ai même rencontré des écritures-seulement...

  20. #20
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par Jérôme_C Voir le message
    Je crois avoir bien compris l'aspect lecture seule, lecture-écriture. J'ai même rencontré des écritures-seulement...
    A vrai dire, cela peut meme arriver beaucoup plus souvent qu'on ne le pense...

    Il "suffit" que la donnée serve de manière uniquement interne (par exemple: le nombre de tour minute d'un moteur de voiture à boite automatique, qui permet de déterminer s'il faut ou non changer le rapport) mais qu'il faille disposer d'un "moyen externe" de faire varier la valeur...

    L'exemple est très mauvais car il utiliserait plutot un comportement "augmenter" et un autre "diminuer" qu'un comportement "régler à"... mais l'idée est là
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [VB.NET] Génération automatique Property (getter / setter)
    Par Husqvarna dans le forum Windows Forms
    Réponses: 7
    Dernier message: 23/07/2020, 12h55
  2. Réponses: 10
    Dernier message: 20/09/2006, 13h53
  3. Emploi dans le privé ou le public
    Par delphine_lep dans le forum Emploi
    Réponses: 2
    Dernier message: 09/01/2006, 13h28
  4. [Info]générer automatiquement les getters / setters
    Par lr dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 01/02/2005, 11h14
  5. configuration getter & setter
    Par otb82 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 15/10/2003, 16h53

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