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...".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Karim Yahioun
Karim Yahioun wrote:
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?
Karim Yahioun wrote:
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?
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?
Vincent Richard
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/
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/
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/
Karim Yahioun
Vincent Richard wrote:
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
Vincent Richard wrote:
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.
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
Michel Michaud
Dans news:, Karim
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 http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:3FFED9E9.7050605@emi.u-bordeaux.fr, Karim
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 mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
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 http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Michel Michaud
Dans news:3ffeddfd$0$7144$, Vincent
// .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 http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:3ffeddfd$0$7144$626a54ce@news.free.fr, Vincent
// .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 mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/