Question

Dans le fichier cpp, existe-t-il un moyen de masquer les données privées des membres d’une classe C ++? Je pense aux membres privés dans le cadre de la mise en œuvre et il semble un peu arriéré de les déclarer dans le fichier d’en-tête.

Était-ce utile?

La solution

Le " pimpl " L’idiome est la façon dont cela est généralement traité.

Voir

Autres conseils

vous voulez utiliser quelque chose comme l'idiome PIMPL

http://fr.wikipedia.org/wiki/Opaque_pointer

La méthode classique consiste à utiliser un pointeur proxy sur une classe interne qui implémente la fonctionnalité. Je ne connais aucun moyen de définir des définitions de classe partielles en C ++.

Devenir commercial? ;)

Vous pouvez créer des fichiers d'en-tête dans lesquels vous déclarez uniquement les API publique et protégée.

L'utilisateur n'est présenté qu'avec ces éléments, qu'il peut inclure. Ils lient leur code à une bibliothèque que vous avez construite à l’aide de l’API complète et des définitions.

Pour les fonctions en ligne: assurez-vous qu'elles sont utilisées dans du code non en ligne, une définition sera disponible dans la bibliothèque (je ne suis pas sûr qu'elle sera en ligne dans l'implémentation de l'utilisateur).

Pour le code basé sur un modèle, il n’existe aucun moyen réel. Une solution à moitié chaleureuse consiste à créer du code, qui utilise le code basé sur un modèle avec différents types d’objets. L'utilisateur sera limité à celles-ci, car ce sont les seules définitions disponibles dans votre bibliothèque.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top