Attribut de classe avec static

Attribut de classe avec static

by Ramy Charfeddine -
Number of replies: 3

Bonjour, 

Est-il possible d'initialiser un attribut de classe static avec un parametre pris en argument?

Soit par exemple double Player::vitesse_joueur (COEF_VITESSE_JOUEUR * (SIDE/nbCell)) en faisant passer le nbCell en argument (sachant que nbCell n'est pas initialisé dans le même module).

Merci


In reply to Ramy Charfeddine

Re: Attribut de classe avec static / une méthode de classe (avec static) a tout à fait le droit d'être public

by Ronan Boulic -

Je ne pense pas qu'une telle initialisation soit possible puisque l'initialisation est fait au lancement du programme indépendamment de la lecture du fichier.

Vous pouvez définir une methode de classe (avec static) qui peut tout à fait être public (contrairement  aux variables de classe static que nous n'autorisons pas en public).

votre méhode de classe peut faire l'initialisation que vous mentionnez au moment de la lecture de l'information nbCell.


In reply to Ronan Boulic

Re: Attribut de classe avec static / une méthode de classe (avec static) a tout à fait le droit d'être public

by Oscar Shraga Keren -

Bonjour,

Est-ce que la liste (de joueurs par exemples) static vector<Player> de la classe Player est considérée elle aussi comme une variable et doit donc être mise en private dans la classe ou bien nous pouvons la voir comme un simple regroupement d'instances Player et donc la rendre public pour rendre les manipulations sur ce vector plus simples et efficaces ?

Merci d'avance.

In reply to Oscar Shraga Keren

Re: Attribut de classe avec static / une méthode de classe (avec static) a tout à fait le droit d'être public

by Ronan Boulic -

on ne peut pas rendre public l'ensemble static vector<Players> ; ça casse trop l'encapsulation.

Vous avez deux possibilités:

A)  L'ensemble static vector<Player> reste reste confidentiel au module player comme illustré dans le document rendu1 et quelques exemples en série niveau0

B)  L'ensemble des Player est définie dans le module simulation et reste confidentiel à ce module (soit comme attribut d'une classe simulation si vous en faites une, soit comme variable static au module). Cette variante est tout à fait accepté ; je ne l'ai pas mise en avant car avec cette stratégie le module Player ne peut plus faire de tâches sur l'ensemble des players ; il reste seulement des tâches liées à un player individuel.