Masquage des données privées de ses membres? (C++)
Est-il un moyen de masquer les données privées des membres d'une classe C++ loin de ses utilisateurs, dans le fichier cpp? Je pense que des membres privés dans le cadre de la mise en œuvre et il semble un peu en arrière afin de les déclarer dans le fichier d'en-tête.
Vous devez vous connecter pour publier un commentaire.
Du "pimpl" l'idiome est de savoir comment cela est généralement traitée.
Voir
vous voulez utiliser quelque chose comme le PIMPL idiome
http://en.wikipedia.org/wiki/Opaque_pointer
Voir Pimpl Idiome
Le classique de la façon de le faire est avec un proxy pointeur interne d'une classe qui implémente la fonctionnalité. Il n'y a aucun moyen de le faire partielle des définitions de classe en C++, que je sache.
Va commerciale? 😉
Vous pouvez créer des fichiers d'en-tête dans lequel vous ne déclarez le public et protégé de l'API.
L'utilisateur est présenté avec ces, qu'ils peuvent comprendre. Ils font le lien entre leur code avec une bibliothèque, que l'on construit à l'aide de l'API complète et les définitions.
Pour inline fonctions: assurez-vous qu'ils sont utilisés dans les non-inline code, puis il y aura une définition disponible à la bibliothèque (je ne suis pas sûr que ça va être incorporé à l'utilisateur la mise en oeuvre, cependant).
Pour basé sur un modèle de code il n'y a pas de véritable moyen de la contourner. Une demi-teinte de la solution est de faire un code qui utilise l'basées sur des modèles de code avec les différents types d'objets. L'utilisateur sera limité à ceux-ci, parce qu'ils sont les seules définitions disponibles dans votre bibliothèque.