Ver Mensaje Individual
  #59  
Antiguo 17-10-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Reputación: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por roman Ver Mensaje
A ver, y ¿por qué no nos das una idea por adelantado? Suena interesante.

// Saludos
Cita:
Empezado por ecfisa Ver Mensaje
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 17-10-2011 a las 21:17:10.
Responder Con Cita