C++: Pourquoi faut-il privé des fonctions-ils être déclarés?

Pourquoi les classes en C++ doivent déclarer leurs fonctions privées? Elle a de réelles raisons techniques (quel est son rôle au moment de la compilation) ou est-ce simplement pour des raisons de cohérence?

  • Demandez-vous pourquoi les fonctions elles-mêmes doivent être déclarés, ou demandez-vous pourquoi vous avez à dire private pour ces fonctions?
  • Je pense que la première.
  • 1er. Je ne sais pas pourquoi les autres classes, y compris l'en-tête doivent savoir au sujet de ses fonctions privées
  • ils n'en ont pas. C'est l'info pour la classe elle-même - c'est à dire la classe sait que foo est membre et a accès à d'autres membres.
  • private et virtual sont orthogonaux concepts. Le fait qu'une fonction est private n'implique pas qu'il n'est pas virtual (comme une question de fait, il y a tout un idiome d'avoir seulement private virtual et public non virtuelle fonctions de membre), donc oui, la présence d'affecter la vtable.
  • bon point. En fait je ne savais pas privé virtuel de fonctions peut être redéfinie dans les classes enfant et ont leurs classes de base d'appel de la nouvelle version sans exposer callability(est-ce encore un mot?)
  • Le mot que vous voulez, c'est "l'accessibilité".

InformationsquelleAutor Ancurio | 2012-07-17