Découpage d'objets : perte de données lors de l'héritage
Dans la programmation orientée objet, l'héritage permet aux classes d'étendre les fonctionnalités de leurs classes parentes. Cependant, ce mécanisme d'héritage peut introduire un phénomène appelé découpage d'objet, qui peut entraîner une perte de données.
Qu'est-ce que le découpage d'objet ?
Le découpage d'objet se produit lorsqu'un objet d'une classe dérivée est affectée à une instance d'une classe de base. Au cours de cette affectation, une partie des données de la classe dérivée devient inaccessible et est « découpée ».
Quand le découpage d'objets se produit-il ?
Considérez les deux classes suivantes :
class A { int foo; }; class B : public A { int bar; };
Une instance de classe B contient deux données membres : foo (hérité de A) et bar. Cependant, si vous attribuez un objet de type B à une instance de type A comme suit :
B b; A a = b;
La barre de données membres de l'objet b devient inaccessible dans l'objet a, ce qui entraîne un découpage de l'objet. Cela se produit parce que a est traité comme une instance de classe de base et qu'il n'a aucune connaissance du membre bar défini dans la classe dérivée B.
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!