Maison >développement back-end >C++ >Pourquoi les objets de la même classe peuvent-ils accéder aux membres privés des autres en C ?
Pourquoi les objets de la même classe peuvent accéder aux données privées des autres
Il est surprenant que les objets de la même classe puissent accéder aux données privées des autres données. Étant donné que les données privées sont censées être privées, pourquoi cela se produit-il ?
Comprendre le contrôle d'accès au niveau de la classe
En C , le contrôle d'accès est implémenté au niveau individuel. base de classe, et non par objet. Cela signifie que les privilèges d'accès à une donnée particulière sont déterminés par la classe à laquelle elle appartient, et non par l'objet qui la contient.
Considérez le code suivant :
class TrivialClass { public: TrivialClass(const std::string& data) : mData(data) {}; const std::string& getData(const TrivialClass& rhs) const { return rhs.mData; }; private: std::string mData; };
Ici , la méthode getData de TrivialClass peut accéder au membre mData d'un autre objet TrivialClass. En effet, le contrôle d'accès est déterminé par la classe elle-même. Le spécificateur d'accès privé rend mData privé uniquement au sein de la classe TrivialClass et de ses classes dérivées.
Implications du contrôle d'accès au niveau de la classe
Le contrôle d'accès au niveau de la classe a plusieurs implications :
Conclusion
Bien que le contrôle d'accès au niveau de la classe puisse sembler contre-intuitif, il permet aux programmeurs C de définir et interagir avec des classes et des objets d'une manière qui exploite la nature statique du langage. Il est important de comprendre les implications de ce modèle lors de la conception et de la mise en œuvre du code C.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!