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 

sécurisation de code: utilisation de const

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





PostPosted: Sat May 08, 2004 11:01 am    Post subject: sécurisation de code: utilisation de const Reply with quote



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




Back to top
Michel Michaud
Guest





PostPosted: Sat May 08, 2004 11:22 am    Post subject: Re: sécurisation de code: utilisation de const Reply with quote



Dans news:409cbdf8$0$27682$636a15ce (AT) news (DOT) free.fr,
heinquoi <nospam*heinquoi1 (AT) libertysurf (DOT) fr> a écrit :
Quote:
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 [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
Le Géant Vert
Guest





PostPosted: Sat May 08, 2004 12:39 pm    Post subject: Re: sécurisation de code: utilisation de const Reply with quote



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:

Quote:
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







Back to top
drkm
Guest





PostPosted: Sat May 08, 2004 12:40 pm    Post subject: Re: sécurisation de code: utilisation de const Reply with quote

"heinquoi" <nospam*heinquoi1 (AT) libertysurf (DOT) fr> writes:

Quote:
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

[...]

Quote:
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 )
{
}

private:
int const myInteger ;
} ;

--drkm

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.