#include <stdio.h>
#include <malloc.h>
/* クラス */
typedef struct __Object
{
int value;
int (*get)(struct __Object *);
void (*set)(struct __Object *, int);
} Object;
/* インスタンスメソッド */
int Object_get(Object *this)
{
return this->value;
}
void Object_set(Object *this, int value)
{
this->value = value;
return;
}
/* コンストラクタ */
Object *new_Object()
{
Object *object;
object = (Object *)malloc(sizeof(Object));
object->get = Object_get;
object->set = Object_set;
object->value = 0;
return object;
}
/* デストラクタ */
void delete_Object(Object *object)
{
free(object);
}
/* メイン関数 */
int main(int argc, char* argv[], char* envp[])
{
Object *object;
object = new_Object();
object->set(object, 15);
printf("%d\n", object->get(object));
delete_Object(object);
return 0;
}
Comments