Cita:
Empezado por roman
A ver, y ¿por qué no nos das una idea por adelantado? Suena interesante.
// Saludos
|
Cita:
Empezado por ecfisa
Hola Ñuño.
Por favor no dejes de hacerlo, ya estoy muy interesado con la sola idea de leerlo.
Un saludo.
|
Lo tengo pendiente de hacer desde hace tiempo, pero siempre lo pospongo. La última razón es que sufro Síndrome del Túnel Metacarpiano desde hace unos meses y al rato de escribir duele...
Aun así: Básicamente es aprovechar cómo está organizada la memoria, para lo cual la flexibilidad de C en cuanto al manejo de datos viene que ni pintado.
La herencia es encadenar:
Código:
struct ClaseA
{
int Valor;
};
struct ClaseB
{
struct ClaseA Inherited;
int OtroValor;
};
void EscribeValor (struct ClaseA *Objeto)
{
printf ("El valor es %d.\n", ObjetoA->Valor);
}
int main (void)
{
struct ClaseB *ObjetoB;
ObjetoB = (struct ClaseB *)malloc (sizeof (struct ClaseB));
/* Esto se puede hacer porque la primera parte de B es idéntica a la de A,
aunque posiblemente devuelva un "WARNING". */
ObjetoB->Inherited.Valor = 10;
EscribeValor (ObjetoB);
return 0;
}
Hay más detalles, a ver cuándo me pongo y lo saco.