Pourquoi définir privé des membres ci-dessous le public et les membres en C++?
En C++ parfois, dans la définition de la classe de membres du public sont déclarés au premier et soldats plus tard. Mais les variables ou les membres de données sont normalement privé et utilisé par les méthodes publiques. Donc, dans ce cas, les variables sont utilisées, mais même pas encore déclarée. Ainsi, le code devient difficile à comprendre. Mais j'ai trouvé de renom, des programmeurs, des sites ou des livres de déclarer les membres privés plus tard. Quelqu'un sait quelle est la raison?
- Dupliquer: stackoverflow.com/questions/308581/...
- Aussi: stackoverflow.com/questions/778281/...
Vous devez vous connecter pour publier un commentaire.
Je fais des choses que le chemin de ronde, puisque les utilisateurs de ma classe ne se soucient pas de les membres privés, ils sont intéressés dans l'API publique (c'est à dire comment faire pour utiliser ma classe).
Aussi, dans les fichiers d'en-tête, je suis juste membre déclarant fonctions, plutôt que de définir eux, donc je ne suis pas accès à tout les membres privés de toute façon.
struct
mot-clé, en premier lieu?Nous lire le texte de haut en bas, de sorte que les informations les plus pertinentes devraient être au top. Dans une définition de classe, c'est l'interface publique.
Membres privés et la mise en œuvre doit être cachée du fichier d'en-tête. Mettre le membre privé définitions en bas, c'est un moyen rapide de le faire. Peut-être qu'il est préférable d'utiliser le Pimpl idiome et de cacher la partie privée de votre classe dans une struct.
Normalement privé, les membres n'ont pas d'importance. Si je suis à la recherche d'une classe afin de déterminer comment l'utiliser ailleurs dans le code, je me moque d'elle-même afin de mettre les députés d'en bas car je n'ai pas besoin de les connaître. Si je"m de la modification d'une classe, alors je vais prendre le temps de découvrir les membres privés et de savoir qu'ils vont être à fond au lieu d'avoir à écumer l'ensemble de la classe.
Nous sommes comme des contraires: Ma Question
Mon raisonnement est que lorsque vous commencez à vous familiariser avec une classe, il est plus avantageux pour la première introduits à l'interface publique puis d'aller plus loin dans le privé, quand vous en avez besoin. Si vous commencez par regarder les membres privés, vous n'avez pas le contexte de la façon dont ils sont utilisés.
Convenu. Les membres privés devraient être déclarées à fond. La seule bonne raison de déclarer privé des membres de la première que j'ai trouvé, c'est lorsqu'une fonction a besoin pour aller ou revenir d'un type de données personnalisé, comme: le vecteur . Le compilateur va vous poser des questions sur ce genre de données.
Mais même dans ce cas, je vous préférez faire:
{
private: ///advicing bce il y a de plus privé ci-dessous!
plus tôt déclarer juste le type
public:
privé:
};