J'ai des données dont je connait pas au moment de la compilation leur
contenu. Une fois initialisé elle garde la meme valeur:
class ClassWindows
{
public:
LPCTSTR lpsNomApp, lpsTitre; //ICI
HINSTANCE hInst;//ICI
HWND hWnd;//ICI
MSG message;//ICI
int nCmdShow;//ICI
WNDCLASS wc;
void BoucleTransMes ();
bool EnregistrementFenetre ();
static LRESULT CALLBACK WndProc (HWND hWnd,
UINT uMsg, WPARAM wParam,LPARAM lParam);
ClassWindows (LPCTSTR, LPCTSTR, HINSTANCE, int );
~ClassWindows(){}
};
je les initialise lors de l'appel au constructeur.
n'y aurait il pas une solution plus sur avec const, pour qu'une fois
initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour
votre aide.
Heinquoi
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
Michel Michaud
Dans news:409cbdf8$0$27682$,
Bjr,
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows { public: LPCTSTR lpsNomApp, lpsTitre; //ICI HINSTANCE hInst;//ICI HWND hWnd;//ICI MSG message;//ICI int nCmdShow;//ICI [...]
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide.
Si tu les initialises dans le constructeur, plus spécifiquement dans la liste d'initialisation, tu peux simplement les déclarer const.
class ClassWindows { public: const LPCTSTR lpsNomApp, lpsTitre; //ICI const HINSTANCE hInst;//ICI // etc.
Mais attention, LPCTSTR c'est probablement un typedef pour des pointeurs et il faudra que tu décides ce que tu veux qui soit const exactement, le pointeur et/ou l'objet pointé...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:409cbdf8$0$27682$636a15ce@news.free.fr,
Bjr,
J'ai des données dont je connait pas au moment de la
compilation leur contenu. Une fois initialisé elle garde la
meme valeur:
class ClassWindows
{
public:
LPCTSTR lpsNomApp, lpsTitre; //ICI
HINSTANCE hInst;//ICI
HWND hWnd;//ICI
MSG message;//ICI
int nCmdShow;//ICI
[...]
je les initialise lors de l'appel au constructeur.
n'y aurait il pas une solution plus sur avec const, pour qu'une
fois initalisé, je ne puisse pas les modifier, avec const par
exemple.Merci pour votre aide.
Si tu les initialises dans le constructeur, plus spécifiquement
dans la liste d'initialisation, tu peux simplement les déclarer
const.
class ClassWindows
{
public:
const LPCTSTR lpsNomApp, lpsTitre; //ICI
const HINSTANCE hInst;//ICI
// etc.
Mais attention, LPCTSTR c'est probablement un typedef pour des
pointeurs et il faudra que tu décides ce que tu veux qui soit
const exactement, le pointeur et/ou l'objet pointé...
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows { public: LPCTSTR lpsNomApp, lpsTitre; //ICI HINSTANCE hInst;//ICI HWND hWnd;//ICI MSG message;//ICI int nCmdShow;//ICI [...]
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide.
Si tu les initialises dans le constructeur, plus spécifiquement dans la liste d'initialisation, tu peux simplement les déclarer const.
class ClassWindows { public: const LPCTSTR lpsNomApp, lpsTitre; //ICI const HINSTANCE hInst;//ICI // etc.
Mais attention, LPCTSTR c'est probablement un typedef pour des pointeurs et il faudra que tu décides ce que tu veux qui soit const exactement, le pointeur et/ou l'objet pointé...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Le Géant Vert
ben avant de penser au const, il faudrait je pense mettre tes données en private, et ne fournir que des getters const ; sans setter, pas moyen de modifier ces données à l'extérieur de la classe. Ex. générique :
class ClassWindows { public: ClassWindows(const Data &rData) : m_data(rData) { } // + assignment operator + copy ctor + dtor
const Data &data() const { return m_data; }
private: Data m_data; };
depuis l'extérieur le seul moyen d'acceder à m_data est le getter, qui est const, donc impossible de modifier quoi que ce soit.
(au passage, note que LPCSTR est un typedef ; LP = long pointer, C = const, STR = chaine/char * => const char *)
heinquoi wrote:
Bjr,
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows { public: LPCTSTR lpsNomApp, lpsTitre; //ICI HINSTANCE hInst;//ICI HWND hWnd;//ICI MSG message;//ICI int nCmdShow;//ICI WNDCLASS wc; void BoucleTransMes (); bool EnregistrementFenetre (); static LRESULT CALLBACK WndProc (HWND hWnd, UINT uMsg, WPARAM wParam,LPARAM lParam);
ClassWindows (LPCTSTR, LPCTSTR, HINSTANCE, int );
~ClassWindows(){} };
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide. Heinquoi
ben avant de penser au const, il faudrait je pense mettre tes données en
private, et ne fournir que des getters const ; sans setter, pas moyen de
modifier ces données à l'extérieur de la classe.
Ex. générique :
class ClassWindows
{
public:
ClassWindows(const Data &rData) : m_data(rData) { }
// + assignment operator + copy ctor + dtor
const Data &data() const { return m_data; }
private:
Data m_data;
};
depuis l'extérieur le seul moyen d'acceder à m_data est le getter, qui
est const, donc impossible de modifier quoi que ce soit.
(au passage, note que LPCSTR est un typedef ; LP = long pointer, C =
const, STR = chaine/char * => const char *)
heinquoi wrote:
Bjr,
J'ai des données dont je connait pas au moment de la compilation leur
contenu. Une fois initialisé elle garde la meme valeur:
class ClassWindows
{
public:
LPCTSTR lpsNomApp, lpsTitre; //ICI
HINSTANCE hInst;//ICI
HWND hWnd;//ICI
MSG message;//ICI
int nCmdShow;//ICI
WNDCLASS wc;
void BoucleTransMes ();
bool EnregistrementFenetre ();
static LRESULT CALLBACK WndProc (HWND hWnd,
UINT uMsg, WPARAM wParam,LPARAM lParam);
ClassWindows (LPCTSTR, LPCTSTR, HINSTANCE, int );
~ClassWindows(){}
};
je les initialise lors de l'appel au constructeur.
n'y aurait il pas une solution plus sur avec const, pour qu'une fois
initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour
votre aide.
Heinquoi
ben avant de penser au const, il faudrait je pense mettre tes données en private, et ne fournir que des getters const ; sans setter, pas moyen de modifier ces données à l'extérieur de la classe. Ex. générique :
class ClassWindows { public: ClassWindows(const Data &rData) : m_data(rData) { } // + assignment operator + copy ctor + dtor
const Data &data() const { return m_data; }
private: Data m_data; };
depuis l'extérieur le seul moyen d'acceder à m_data est le getter, qui est const, donc impossible de modifier quoi que ce soit.
(au passage, note que LPCSTR est un typedef ; LP = long pointer, C = const, STR = chaine/char * => const char *)
heinquoi wrote:
Bjr,
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows { public: LPCTSTR lpsNomApp, lpsTitre; //ICI HINSTANCE hInst;//ICI HWND hWnd;//ICI MSG message;//ICI int nCmdShow;//ICI WNDCLASS wc; void BoucleTransMes (); bool EnregistrementFenetre (); static LRESULT CALLBACK WndProc (HWND hWnd, UINT uMsg, WPARAM wParam,LPARAM lParam);
ClassWindows (LPCTSTR, LPCTSTR, HINSTANCE, int );
~ClassWindows(){} };
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide. Heinquoi
drkm
"heinquoi" <nospam* writes:
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows
[...]
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide.
class A { public: A() : myInteger( une_valeur ) { }
J'ai des données dont je connait pas au moment de la compilation leur
contenu. Une fois initialisé elle garde la meme valeur:
class ClassWindows
[...]
je les initialise lors de l'appel au constructeur.
n'y aurait il pas une solution plus sur avec const, pour qu'une fois
initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour
votre aide.
class A
{
public:
A()
: myInteger( une_valeur )
{
}
J'ai des données dont je connait pas au moment de la compilation leur contenu. Une fois initialisé elle garde la meme valeur: class ClassWindows
[...]
je les initialise lors de l'appel au constructeur. n'y aurait il pas une solution plus sur avec const, pour qu'une fois initalisé, je ne puisse pas les modifier, avec const par exemple.Merci pour votre aide.
class A { public: A() : myInteger( une_valeur ) { }