Maison > développement back-end > C++ > Qu'est-ce que le découpage d'objets et quand se produit-il lors de l'héritage ?

Qu'est-ce que le découpage d'objets et quand se produit-il lors de l'héritage ?

DDD
Libérer: 2024-12-29 02:17:10
original
211 Les gens l'ont consulté

What is Object Slicing and When Does it Occur in Inheritance?

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;
};
Copier après la connexion

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;
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal