Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1015 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Faire des membres d'une classe en "lecture seule"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire des membres d'une classe en "lecture seule"

n°1135338
theredled
● REC
Posté le 30-06-2005 à 01:24:02  profilanswer
 

Bien le bonsoir
 
Ma question : comment faire en sorte que des variables membres d'une classe ne soit accessibles qu'en "lecture seule" au reste du programme (!= private, != public) ?
Est-ce possible ou faut-il vraiment faire une fonction publique par variable privée pour pouvoir lire cette dernière ?
 
Bien le merci :)

mood
Publicité
Posté le 30-06-2005 à 01:24:02  profilanswer
 

n°1135348
deather2
Posté le 30-06-2005 à 02:04:34  profilanswer
 

Il faut un accesseur par variable.

n°1135440
theshockwa​ve
I work at a firm named Koslow
Posté le 30-06-2005 à 09:37:38  profilanswer
 

Code :
  1. class Baz {};
  2. class Foo {
  3.   int _bar;
  4.   Baz _baz
  5. public:
  6.   int bar() const {return _bar;};
  7.   const Baz &baz() const {return _baz;};
  8. };

n°1135441
masklinn
í dag viðrar vel til loftárása
Posté le 30-06-2005 à 09:39:02  profilanswer
 

ou alors à la java, tous les membres en privés/protégés et des getters/setters (que des getters pour les membres en lecture seule)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1135445
Taz
bisounours-codeur
Posté le 30-06-2005 à 09:42:06  profilanswer
 

un getter/setter en Java, ça protège queudalle si tu renvoies pas une copie.

n°1135459
HelloWorld
Salut tout le monde!
Posté le 30-06-2005 à 09:52:22  profilanswer
 

Tiens, je viens de penser à un truc:

Code :
  1. class A
  2. {
  3. public:
  4.     const int & Value;
  5.     A() : Value( value_ )
  6.     {
  7.     }
  8. private:
  9.     int value_;
  10. };


:gratgrat:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1135468
masklinn
í dag viðrar vel til loftárása
Posté le 30-06-2005 à 10:01:27  profilanswer
 

Taz a écrit :

un getter/setter en Java, ça protège queudalle si tu renvoies pas une copie.


Heuu le getter par définition il va envoyer une copie ou un const, sinon le setter ne sert à rien [:pingouino]
 
Un peu [:pingouino]
 
Quoi [:pingouino]


Message édité par masklinn le 30-06-2005 à 10:01:58

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1135470
Taz
bisounours-codeur
Posté le 30-06-2005 à 10:02:22  profilanswer
 

ben non.
 
 
la const&, par forcément. Mais un const bien placé, ça peut le faire.

n°1135483
theshockwa​ve
I work at a firm named Koslow
Posté le 30-06-2005 à 10:10:48  profilanswer
 

HelloWorld a écrit :

Tiens, je viens de penser à un truc:

Code :
  1. class A
  2. {
  3. public:
  4.     const int & Value;
  5.     A() : Value( value_ )
  6.     {
  7.     }
  8. private:
  9.     int value_;
  10. };


:gratgrat:


 
dans le principe, ca me dérange un peu de faire une référence sur une variable qui n'est pas encore initialisée, sinon, ouais, ca me plait :D
 
Edit : (c'était juste pour dire que j'aurais déclaré value_ avant de déclarer Value, quoi)


Message édité par theshockwave le 30-06-2005 à 10:14:04
n°1135834
theredled
● REC
Posté le 30-06-2005 à 13:33:54  profilanswer
 

A ouais, genre en mettant la définition de la fontion accesseure dans la def de classe, comme ça, si j'ai bien retenu ma leçon, elle devient inline, et on a pas de perte en performances.
?
 
Sinon une question totalement nioubie par rapport au truc de HelloWorld : ça veut dire quoi " A() : Value(value_) " ? Value n'est pas une fonction alors pourquoi ces parenthèses  ? Et les 2 points, c'est pour inclure une fonction dans une autre ? Ou bien ?

mood
Publicité
Posté le 30-06-2005 à 13:33:54  profilanswer
 

n°1135861
Lamarmotte
Posté le 30-06-2005 à 13:54:39  profilanswer
 

ca s'appelle un constructeur

n°1135872
theshockwa​ve
I work at a firm named Koslow
Posté le 30-06-2005 à 14:02:49  profilanswer
 

theredled a écrit :

c'est pour inclure une fonction dans une autre ? Ou bien ?


 
bien [:petrus75]
 
c'est l'initialisation de la donnée Value comprise dans l'objet faite proprement (pour une référence, tu ne peux pas faire autrement)

n°1136221
theredled
● REC
Posté le 30-06-2005 à 16:54:45  profilanswer
 

Hmmm... une liste d'initialisation...  :o

n°1136240
theshockwa​ve
I work at a firm named Koslow
Posté le 30-06-2005 à 17:03:15  profilanswer
 

bah, oui, tu peux aussi chainer les initialisations en les séparant par des virgules. Note qu'il est plutôt conseillé de réaliser les initialisations dans l'ordre de déclaration des membres de ta classe si tu ne veux pas avoir d'ennuis ...

n°1136277
theredled
● REC
Posté le 30-06-2005 à 17:37:58  profilanswer
 

ok merci messieurs


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Faire des membres d'une classe en "lecture seule"

 

Sujets relatifs
[JAVA] Lecture/Ecriture dans un fichier texte.[C#] Classe de log
Appliquer un style sur une seule colonne d'un tableau [résolu]id, classe
Pb lecture fichier xml dans flashproblème chmod / lecture de fichiers sur un serveur
Recup données html:select dans classe actionDesign d'une classe collection
Récupération d'une donnée d'un fichier[C++] Lecture d'une variable static d'une autre classe??
Plus de sujets relatifs à : Faire des membres d'une classe en "lecture seule"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR