Protected vs private

Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
- - Dernière réponse : cs_Arkko
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
- 16 juil. 2003 à 17:41
Bon cte question la jlai jamais posé :) ....

c'est quoi la différence entre une variable ou fonction protected et private ... (je c ce que c'est protected mais c'est le private qui me chicote ... en vb private c'est que la variable ne peux pas sortir du code du fichier qu'elle est déclarer mais en c++ j'en ai aucune espece d'id ....

Note : les privates sont meme pos éfleurer dans mon tchit book ...

Merci

@+ Arkko
Afficher la suite 

5 réponses

Messages postés
5
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
16 juillet 2003
0
Merci
La difference n'est tres evidente c'est meme pour moi une question de philosophie.

en gros le protected s'utilise surtout quand tu veux faire de la derivation dans ce cas tes classes derivee connaisse la partie publique et la partie protected de ta classe de base et par contre ignore completement la partie private.

en gros si tu veux pas t'embeter pour faire du code propre et avec un bon design tu met tout dans public (tres bourrin et imonde) ou alors tu separe entre protected et public.

personelement j'essaye d'aller un peu plus loin et j'applique les regles suivante :

1- toute les variables de la classe sont private !
2- dans le public je ne met que le strict necessaire et l'utilisation de la classe (en particulier si ta classe n'est pas un objet mais un algorithme un constructeur, un destructeur et une fonction execute suffisent!.

3- en rpotected toute les sous focntions utiles pour les classes derives et les focntions declaree dans publique.

4- je declare des fonction inline soit dans publique soit dans protected (selon le besoin) pour acceder aux membre de la classe.

5- je declare le maximum de fonctions const!!!!!!

Voila c'est a peu pres tout .... en gros imagine toujours que ta classe va etre utilise par le con du village et definit alors le design minimun ou on peut faire le moins de degats.

Cordialement
E.
Commenter la réponse de efetel
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
0
Merci
euh .. et const lol c koi :P!!!
Commenter la réponse de cs_Arkko
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
0
Merci
En resume les privates servent pas a grand chose .... je vais me servir des public et protected comme avant :) car je comprend pas trop l'avantage d'utiliser private ,.
Commenter la réponse de cs_Arkko
Messages postés
5
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
16 juillet 2003
0
Merci
le mot const te permet de specifier si quelque chose est constant ou pas
il y a different cas celui auquel je pensais :

1- la fonction const :
exemple :
class A {
public :
A() // ne peut jamais etre const 
~A() // non plus
....
toto() const;
}

dans ce cas toto() ne peut pas modifier les membre de la classe A.
Comme ca ca ne parait pas tres utile mais :

1- ca permet de savoir quand tu utilise une classe que tu m'a pas ecrite ce qui change ou pas et donc de prendre des precautions ou pas .. mine de rien ca peux t'eviter de faire des tests inutiles ... et donc de gagner du temps.

2-
une fonction const ne peux pas appeler de fonction non-const ... donc si quelqu'un fait un beau code celui ci peut etre bloquer pas un code mal designer..... ca m'est deja arriver de devoir sacrifier mon design et j'aime pas ca .

Pour le mot cle cosnt il y a d'autre utilisation mais vaux mieux les voir en programmant..

Cordialement
E.
Commenter la réponse de efetel
Messages postés
192
Date d'inscription
mercredi 26 décembre 2001
Statut
Membre
Dernière intervention
31 janvier 2007
0
Merci
Public : Membre de la classe accessible depuis l'extérieur de la classe.

Protégé : Membre de classe accessible aux autres membres de la meme classe et aux membres de n'importe sous-classe. Les membres protégés ne sont pas accessible publiquement.

Privé : membre de classe accesible seulement aux autres membres de la meme classe

....
@+ Arkko
Merci a ceux qui ont repondu :P
Commenter la réponse de cs_Arkko