Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1544 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  private, return et "lecture seule"

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

private, return et "lecture seule"

n°191756
farib
Posté le 07-08-2002 à 22:01:37  profilanswer
 

si j'ai (j'ai pas mis le reste du code ;))
 
class Calculette
{
 public:
 
 vector<double> * Afficher_Pile () {return Pile ;}
 
 private :
 vector<double> * Pile;
}
 
 
est-ce que ca m'empeche de faire
 
Calculette * MaCalculette = new Calculette ();
 
MaCalculette->Afficher_Pile()->push_back(0.25) ;
 
 
?
 
(je souhaite que oui....)
 
juste hisoire d'etre sur....

mood
Publicité
Posté le 07-08-2002 à 22:01:37  profilanswer
 

n°191764
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-08-2002 à 22:10:28  profilanswer
 

non ça ne t'empêche pas de le faire


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°191768
farib
Posté le 07-08-2002 à 22:19:12  profilanswer
 

merde !
zut et zut!
 
spabieng

n°191769
antp
Super Administrateur
Champion des excuses bidons
Posté le 07-08-2002 à 22:21:06  profilanswer
 

Tu veux faire quoi avec ton "afficher_pile" ?
tu retourne un pointeur vers le vecteur donc à priori c'est que tu veux donner accès au vecteur...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°191772
farib
Posté le 07-08-2002 à 22:24:40  profilanswer
 

afficher ... mais pour le principe, j'aurais voulu que ce soit totalemetn impossible de modifier la pile sans passer par les méthodes propres de la classe
 

n°191776
LetoII
Le dormeur doit se réveiller
Posté le 07-08-2002 à 22:29:22  profilanswer
 

farib a écrit a écrit :

afficher ... mais pour le principe, j'aurais voulu que ce soit totalemetn impossible de modifier la pile sans passer par les méthodes propres de la classe
 
 




 
tu renvoit un pointeur cont alors, de toute manière c totalement imposssible si tu renvois l'adresse de ton vecteur y a tjrs moyen de contourner, masi avec le cont ça limite (faut faire un const_cast pour pouvoir modifier la variable)


---------------
Le Tyran
n°191858
LeGreg
Posté le 08-08-2002 à 01:26:38  profilanswer
 

utilisation de const:
un const ca ne se resout pas au runtime
mais au compilation time.  
 
Que definit un const: un objet sur qui on ne doit
appeler que des methodes const. Ces methodes const peuvent
tres bien modifier l'objet, le compilateur s'en fiche
c'est au programmeur de savoir ce qu'il fait et d'etre coherent avec l'utilité affichée de l'objet.
 
A l'impossible nul n'est tenu, un compilateur ne resout pas les problemes existentiels du programmeur, ni la presence d'une bonne documentation sur l'utilisation des objets.
 
Utilisation du private:
un private ne se resout pas au runtime
mais au compilation time.
 
L'interet du private ne reside pas a cacher une partie
de la memoire au reste de l'application (chose qui est impossible a faire en C/C++) ni a la rendre read only.
 
Le private permet juste d'encapsuler une partie des membres d'un objet pour y acceder de maniere clean par une interface publique. (afin de privilégier les bonnes habitudes de programmation, pour que l'utilisateur de la classe ne se repose pas trop sur l'implantation actuelle et soit pousse a utiliser les accesseurs pour acceder aux membres de la classe).
 
Les constructions du C++, ne t'autorisent pas a rendre ces choses "totalement impossibles", par contre l'utilisateur qui cherche a faire du code qui marche (et non pas qui marchotte, jusqu'a ce que tu changes l'implantation ou que tu recompiles tes librairies) sera fortement incité à faire confiance a tes interfaces et constructions pour utiliser tes classes et ton code (en supposant que tu saches ce que tu fais evidemment).
 
Evidemment sans interface publique tu es forcé de faire du reverse engineering, chose dont les hackers ne se privent pas.
 
A+
LeGreg

n°191875
LetoII
Le dormeur doit se réveiller
Posté le 08-08-2002 à 08:26:03  profilanswer
 

C vrai que présenté comme ça c plus clair :D


---------------
Le Tyran
n°191944
LeGreg
Posté le 08-08-2002 à 11:25:05  profilanswer
 

il faut bien lever quelques legendes
qui risqueraient de s'insidier dans l'esprit
du débutant :)
 
LeGreg
ps: quoi t'as quelque chose a redire sur mes explications :fou: ??

n°191961
LetoII
Le dormeur doit se réveiller
Posté le 08-08-2002 à 11:49:02  profilanswer
 

legreg a écrit a écrit :

il faut bien lever quelques legendes
qui risqueraient de s'insidier dans l'esprit
du débutant :)
 
LeGreg
ps: quoi t'as quelque chose a redire sur mes explications :fou: ??




 
Non, elle sont bien, plus clair que les miennes (c pour ça que je ferai jamais prof :D)


---------------
Le Tyran
mood
Publicité
Posté le 08-08-2002 à 11:49:02  profilanswer
 

n°192639
Musaran
Cerveaulté
Posté le 09-08-2002 à 03:58:02  profilanswer
 

Quand on poste la même chose à plusieurs endroits, c'est bien de mettre au moins un lien.
http://www.developpez.net/forums/v [...] p?p=115987


Message édité par Musaran le 09-08-2002 à 04:08:34

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°192817
antp
Super Administrateur
Champion des excuses bidons
Posté le 09-08-2002 à 11:46:26  profilanswer
 

c'est pas bien le cross-post :non:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  private, return et "lecture seule"

 

Sujets relatifs
Lecture d'un fichier dans une macro ?[XML-XSLT] réunir plusieurs arborescences en une seule non redondante
[php] Lecture de fichier[JS] faire 'attendre' le return d'une fonction
problème de lecture de fichier sous vc++ 6[C, libpng] Lecture d'un fichier PNG ?!
Peut on configurer un CELLPADDING pour 1 seule cellule ?pb de lecture
[C] problème de lecture de caractères dans un fichier[JAVA] Lecture d'un fichier texte
Plus de sujets relatifs à : private, return et "lecture seule"


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR