Initialiser des const dans une class, possible?

Initialiser des const dans une class, possible? - C++ - Programmation

Marsh Posté le 16-03-2010 à 20:15:50    

Bonjour,
 
Petite question qui peut paraître (ou qui est) complétement stupide, mais bon :
 
Voila le topo :
J'ai une classe Infos.  

Code :
  1. class Infos
  2. {
  3.    public:
  4.       Infos( int, int );
  5.       ~Infos() {};
  6.       int c;
  7.       int d;
  8.       int e;
  9. }


 
Dans cette classe, j'ai 3 attributs entier (c, d, e).  
Le constructeur est :

Code :
  1. Infos::Infos (int a, int b)
  2. {
  3.    c = a + 1 ;
  4.    d = a * 2 ;
  5.    e = a - 3;
  6. }


 
Jusque la rien d'anormale. Sauf que je voudrais que c, d et e ne soit pas modifiable (des const en somme). Ils seront donc initialisé à la création de la class mais leur valeur restera figé.
 
De plus, ces valeurs doivent être exploitable par d'autres class sans pour autant passer par des accesseur, car j'ai simplifié mais j'en ai plus que 3.
 
Merci de vos conseils.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
Reply

Marsh Posté le 16-03-2010 à 20:15:50   

Reply

Marsh Posté le 16-03-2010 à 20:20:47    

Utilise une liste d'initialisation.


---------------
The truth is rarely pure and never simple (Oscar Wilde)
Reply

Marsh Posté le 17-03-2010 à 12:06:01    

Merci de ta réponse.
 
Je connais pas ce procédé. J'ai cherche sur google, et j'ai corrigé ma class. J'avais un probléme de compil avant de comprendre qu'il fallait respecter l'ordre de déclaration des const dans la suite de la class.
 
Encore merci.


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
Reply

Marsh Posté le 17-03-2010 à 12:15:53    

Pour ceux qui tomberaient dessus et qui voudraient la solution : http://membres.multimania.fr/dance [...] ss150.html

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed