All pastes #696225 Raw Edit

MVi

public c v1 · immutable
#696225 ·published 2007-09-13 19:54 UTC
rendered paste body
/** * Uglyhack written by MVi * * And remember kids, don't try/throw/catch this at home! */#include <stdio.h>#include <stdlib.h>typedef struct classA{  int A_i;  int (*integer)(struct classA*);}classA;int M_integer(classA *this) {return(this->A_i);}classA *newClassA(int P_i){  classA *object = (classA*)malloc(sizeof(classA));  object->integer = M_integer;  object->A_i = P_i;  return(object);}void initClassA(classA *object, int P_i){  object->integer = M_integer;  object->A_i = P_i;  return;}typedef struct classB{  classA super;  int A_j;  int (*integer)(struct classB*);}classB;int M_Binteger(classB *this) {return(this->A_j + this->super.A_i);}classB *newClassB(int P_i, int P_j){  classB *object = (classB*)malloc(sizeof(classB));  initClassA(&(object->super), P_i);  object->integer = M_Binteger;  object->A_j = P_j;  object->super.integer = (int(*)(classA*))object->integer;  return(object);}int main(int argc, char **argv){  classA *obj1 = newClassA(8);  classA *obj2 = (classA*)newClassB(7, 9);  int foo = obj1->integer(obj1);  printf("%d\n", foo);  printf("%d\n", obj2->integer(obj2));  return(0);}