| View previous topic :: View next topic |
| Author |
Message |
Karim Yahioun Guest
|
Posted: Fri Jan 09, 2004 4:42 pm Post subject: variable globale dans classe statique |
|
|
Bonjour,
pourriez vous m'aider sur la facon de declarer une variable globale
statique dans une classe statique (dans le .h) sans avoir lors de la
compilation une erreur du type "undefined reference...".
merci d'avance
|
|
| Back to top |
|
 |
Karim Yahioun Guest
|
Posted: Fri Jan 09, 2004 4:54 pm Post subject: Re: variable globale dans classe statique |
|
|
Karim Yahioun wrote:
| Quote: | Bonjour,
pourriez vous m'aider sur la facon de declarer une variable globale
statique dans une classe statique (dans le .h) sans avoir lors de la
compilation une erreur du type "undefined reference...".
merci d'avance
|
En fait, j'ai trouvé une premiere solution qui serait de mettre toutes
mes variables statiques directement dans le .cpp de la classe statique.
Ca a l'air de fonctionner...mais peut-on faire mieux?
|
|
| Back to top |
|
 |
Vincent Richard Guest
|
Posted: Fri Jan 09, 2004 5:00 pm Post subject: Re: variable globale dans classe statique |
|
|
Le Vendredi 9 Janvier 2004 17:54, Karim Yahioun a écrit :
| Quote: | En fait, j'ai trouvé une premiere solution qui serait de mettre toutes
mes variables statiques directement dans le .cpp de la classe statique.
Ca a l'air de fonctionner...mais peut-on faire mieux?
|
Si tu parles de faire ça :
// .hpp
class A
{
static int var;
};
// .cpp
int A::var = 5;
on ne peut pas faire mieux puisque c'est la solution utilisée
habituellement (et je suis presque sûr que c'est la seule possible).
Sauf si tu initialise directement la variable :
// .hpp
class A
{
static int var = 5;
};
Mais ça n'est possible que pour des types entiers.
Vincent
--
vmime, une bibliothèque C++ sous licence GPL pour parser et générer
des messages au format MIME : http://www.sourceforge.net/projects/vmime/
|
|
| Back to top |
|
 |
Karim Yahioun Guest
|
Posted: Fri Jan 09, 2004 5:08 pm Post subject: Re: variable globale dans classe statique |
|
|
Vincent Richard wrote:
| Quote: | Le Vendredi 9 Janvier 2004 17:54, Karim Yahioun a écrit :
En fait, j'ai trouvé une premiere solution qui serait de mettre toutes
mes variables statiques directement dans le .cpp de la classe statique.
Ca a l'air de fonctionner...mais peut-on faire mieux?
Si tu parles de faire ça :
// .hpp
class A
{
static int var;
};
// .cpp
int A::var = 5;
on ne peut pas faire mieux puisque c'est la solution utilisée
habituellement (et je suis presque sûr que c'est la seule possible).
Sauf si tu initialise directement la variable :
// .hpp
class A
{
static int var = 5;
};
Mais ça n'est possible que pour des types entiers.
Vincent
|
Merci, j'ai aussi trouver un article qui me disait que c'etait tout
simplement impossible.
Merci en tout cas de ta reponse
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Fri Jan 09, 2004 5:10 pm Post subject: Re: variable globale dans classe statique |
|
|
Dans news:3FFED9E9.7050605 (AT) emi (DOT) u-bordeaux.fr, Karim
Yahioun <yahioun (AT) emi (DOT) u-bordeaux.fr> a écrit :
| Quote: | pourriez vous m'aider sur la facon de declarer une variable globale
statique dans une classe statique (dans le .h) sans avoir lors de la
compilation une erreur du type "undefined reference...".
|
Il faut la définir dans un fichier source aussi. Si tu veux
éviter ça, la solution est un singleton simple, que tu peux mettre
dans un .h seulement, genre
inline int& MaVar()
{
static int maVar=0;
return maVar;
}
Ensuite tu utilises MaVar() au lieu de maVar dans ton code...
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
Michel Michaud Guest
|
Posted: Fri Jan 09, 2004 5:11 pm Post subject: Re: variable globale dans classe statique |
|
|
Dans news:3ffeddfd$0$7144$626a54ce (AT) news (DOT) free.fr, Vincent
Richard <chere-loque.MARRE-DE-LA-PUB (AT) wanadoo (DOT) fr.invalid> a écrit :
| Quote: | // .hpp
class A
{
static int var = 5;
};
Mais ça n'est possible que pour des types entiers.
|
Non, en plus, il faut que la variable soit const et il est possible
que la définition soit nécessaire aussi...
--
Michel Michaud [email]mm (AT) gdzid (DOT) com[/email]
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
|
|
| Back to top |
|
 |
|