C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

compteur static

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French)
View previous topic :: View next topic  
Author Message
ByB
Guest





PostPosted: Thu Jun 01, 2006 11:19 pm    Post subject: compteur static Reply with quote



Bonjour,

Dans un porgramme, j'ai une classe représentant une fenêtre avec des
données dedans. Je dois laisser à l'utilisateur la possibilité d'ouvrir
au plus trois fenêtres de ce type (par le biais d'un menu).
L'utilisateur ouvre les fenêtres une à une, jusqu'à 3 au maximum.

Il faut donc que je dispose d'un moyen de compter les fenêtres, et
aussi d'un moyen de les identifier, afin d'envoyer les bonnes données à
la bonne fenêtre.

Je pensais donc doter la classe d'un donnée statique (static int
compteur) capable de compter le nombre d'occurrences de la fenêtre et
de bloquer après la troisième.

Le problème est donc d'initialiser ce compteur. En clair, où faut il le
mettre à 0, avant de l'incrémenter à chaque ouverture de fenêtre ?

Merci de vos conseils.


--
Du fait de la crise conjoncturelle, il serait intéressant d'avoir à
l'esprit toutes les alternatives déjà en notre possession.
Back to top
Sylvain
Guest





PostPosted: Fri Jun 02, 2006 12:30 am    Post subject: Re: compteur static Reply with quote



ByB wrote on 01/06/2006 20:19:
Quote:

Le problème est donc d'initialiser ce compteur. En clair, où faut il le
mettre à 0, avant de l'incrémenter à chaque ouverture de fenêtre ?

il faut simplement initialiser la donnée statique à zéro lors de sa

déclaration (dans le .cpp de la classe).

int MyClassWindow::refCounter = 0;

une donnée statique (globale ou d'une classe) à un espace réservé par le
linker lorqu'il assemble les morceaux, cet espace est ou non initialisé
selon les déclarations propres à chaque variable, si une variable l'est,
sa valeur est fixée à chaque demarrage de l'appli ou chaque chargement
de la librairie selon la nature du module de code.

Sylvain.
Back to top
ByB
Guest





PostPosted: Fri Jun 02, 2006 6:20 am    Post subject: Re: compteur static Reply with quote



J'ai envie de hurler à la face du monde que Sylvain a affirmé le
01/06/2006 que
Quote:
ByB wrote on 01/06/2006 20:19:

Le problème est donc d'initialiser ce compteur. En clair, où faut il le
mettre à 0, avant de l'incrémenter à chaque ouverture de fenêtre ?

il faut simplement initialiser la donnée statique à zéro lors de sa
déclaration (dans le .cpp de la classe).

int MyClassWindow::refCounter = 0;

une donnée statique (globale ou d'une classe) à un espace réservé par le
linker lorqu'il assemble les morceaux, cet espace est ou non initialisé selon
les déclarations propres à chaque variable, si une variable l'est, sa valeur
est fixée à chaque demarrage de l'appli ou chaque chargement de la librairie
selon la nature du module de code.

Sylvain.

OK, merci.

--
LA FINALITE PONCTUE LES PROCESSUS FONDAMENTAUX DE LA DEMARCHE
Back to top
kanze
Guest





PostPosted: Fri Jun 02, 2006 8:20 am    Post subject: Re: compteur static Reply with quote

ByB wrote:

Quote:
Dans un porgramme, j'ai une classe représentant une fenêtre
avec des données dedans. Je dois laisser à l'utilisateur la
possibilité d'ouvrir au plus trois fenêtres de ce type (par le
biais d'un menu). L'utilisateur ouvre les fenêtres une à une,
jusqu'à 3 au maximum.

Il faut donc que je dispose d'un moyen de compter les
fenêtres, et aussi d'un moyen de les identifier, afin
d'envoyer les bonnes données à la bonne fenêtre.

Au moins d'avoir beaucoup de fenêtres, un int me semble tout
indiqué pour le comptage. (Réalistiquement, je crois qu'on
pourrait même se passer des vérifications de débordement ici.)

Quant à l'identification, est-ce que le système ne t'en livre
pas un ? (Je sais que X/Windows le fait ; je ne me connais pas
aussi bien en MS-Windows.)

Quote:
Je pensais donc doter la classe d'un donnée statique (static
int compteur) capable de compter le nombre d'occurrences de la
fenêtre et de bloquer après la troisième.

Le problème est donc d'initialiser ce compteur. En clair, où
faut il le mettre à 0, avant de l'incrémenter à chaque
ouverture de fenêtre ?

Toutes les variables statiques sont implicitement initialisées à
0, sans que tu ne le démandes. Pour d'autres valeurs (et souvent
pour 0 aussi, pour qu'on l'voit clairement), on met
l'initialisation dans la définition, exactement comme pour
n'importe quelle variable (locale ou d'autre).

--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Back to top
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (French) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.