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);}