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