2012-09-03 17 views
7

Los C++ 03 estados estándar §1.8 [intro.object]/4:¿Qué significa el "objeto más derivado"?

Si un objeto completo, un miembro de datos (9.2), o un elemento de matriz es de tipo de clase, su tipo es considerada la clase más derivada, la distingue del tipo de clase de cualquier subobjeto de clase base; un objeto del tipo de clase más derivado se denomina objeto más derivado.

¿Alguien puede arrojar algo de luz sobre el "objeto más derivado"? Algunos ejemplos serían muy apreciados.

Respuesta

12

La cita define el significado de , la clase más derivada es la clase del objeto instanciado. Mientras que un objeto puede ser muchos tipos, como modelos de herencia es-una relación, solo tendrá una clase más derivada.

con un ejemplo:

class base {}; 
class derived : base {}; 
class base2 {}; 
class mostderived : derived, base2 {}; 

mostderived md; 

El objeto md es de clase más derivadamostderived, aunque también es de tipos base, derived y base1. Cuando se habla de md, hay un subobjeto de tipo base, un subobjeto de tipo derived (que incluye el subobjeto de tipo base), y un subobjeto de tipo base2, pero sólo uno objeto más derivada que es md de tipo mostderived.

Cuestiones relacionadas