108 lines
1.2 KiB
C
108 lines
1.2 KiB
C
|
|
#ifndef _extends
|
||
|
|
|
||
|
|
#define _extends
|
||
|
|
|
||
|
|
|
||
|
|
// Macros
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
#include "stdlib.h"
|
||
|
|
|
||
|
|
extern char * __ClassNames[];
|
||
|
|
|
||
|
|
|
||
|
|
// Includes
|
||
|
|
|
||
|
|
#include <stdio.h>
|
||
|
|
|
||
|
|
|
||
|
|
typedef struct b{
|
||
|
|
|
||
|
|
unsigned short __classIndex;
|
||
|
|
|
||
|
|
int propertyFromB;
|
||
|
|
|
||
|
|
|
||
|
|
} b;
|
||
|
|
|
||
|
|
void b_methodFromB( struct inherit * this );
|
||
|
|
|
||
|
|
typedef struct a{
|
||
|
|
|
||
|
|
unsigned short __classIndex;
|
||
|
|
|
||
|
|
int propertyFromA;
|
||
|
|
|
||
|
|
int propertyFromB;
|
||
|
|
|
||
|
|
|
||
|
|
} a;
|
||
|
|
|
||
|
|
void a_methodFromA( struct inherit * this );
|
||
|
|
|
||
|
|
void a_methodFromB( struct inherit * this );
|
||
|
|
|
||
|
|
typedef struct inherit{
|
||
|
|
|
||
|
|
unsigned short __classIndex;
|
||
|
|
|
||
|
|
int propertyFromC;
|
||
|
|
|
||
|
|
int propertyFromA;
|
||
|
|
|
||
|
|
int propertyFromB;
|
||
|
|
|
||
|
|
|
||
|
|
} inherit;
|
||
|
|
|
||
|
|
void inherit_methodFromC( struct inherit * this );
|
||
|
|
|
||
|
|
void inherit_methodFromA( struct inherit * this );
|
||
|
|
|
||
|
|
void inherit_methodFromB( struct inherit * this );
|
||
|
|
|
||
|
|
typedef struct classA{
|
||
|
|
|
||
|
|
unsigned short __classIndex;
|
||
|
|
|
||
|
|
int propertyFromC;
|
||
|
|
|
||
|
|
|
||
|
|
} classA;
|
||
|
|
|
||
|
|
void classA_methodFromC( struct inherit * this );
|
||
|
|
|
||
|
|
typedef struct classB{
|
||
|
|
|
||
|
|
unsigned short __classIndex;
|
||
|
|
|
||
|
|
int propertyFromC;
|
||
|
|
|
||
|
|
|
||
|
|
} classB;
|
||
|
|
|
||
|
|
void classB_methodFromC( struct inherit * this );
|
||
|
|
|
||
|
|
b b_new( );
|
||
|
|
|
||
|
|
b * b_newPointer( );
|
||
|
|
|
||
|
|
a a_new( );
|
||
|
|
|
||
|
|
a * a_newPointer( );
|
||
|
|
|
||
|
|
inherit inherit_new( );
|
||
|
|
|
||
|
|
inherit * inherit_newPointer( );
|
||
|
|
|
||
|
|
classA classA_new( );
|
||
|
|
|
||
|
|
classA * classA_newPointer( );
|
||
|
|
|
||
|
|
classB classB_new( );
|
||
|
|
|
||
|
|
classB * classB_newPointer( );
|
||
|
|
|
||
|
|
#endif
|