Advertisement
hiro1357

object_oriented_like.c

Mar 29th, 2019
206
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <malloc.h>
  3.  
  4. /* クラス */
  5. typedef struct __Object
  6. {
  7.   int value;
  8.   int (*get)(struct __Object *);
  9.   void (*set)(struct __Object *, int);
  10. } Object;
  11.  
  12. /* インスタンスメソッド */
  13. int Object_get(Object *this)
  14. {
  15.   return this->value;
  16. }
  17.  
  18. void Object_set(Object *this, int value)
  19. {
  20.   this->value = value;
  21.   return;
  22. }
  23.  
  24. /* コンストラクタ */
  25. Object *new_Object()
  26. {
  27.   Object *object;
  28.   object = (Object *)malloc(sizeof(Object));
  29.   object->get = Object_get;
  30.   object->set = Object_set;
  31.   object->value = 0;
  32.   return object;
  33. }
  34.  
  35. /* デストラクタ */
  36. void delete_Object(Object *object)
  37. {
  38.   free(object);
  39. }
  40.  
  41. /* メイン関数 */
  42. int main(int argc, char* argv[], char* envp[])
  43. {
  44.   Object *object;
  45.   object = new_Object();
  46.   object->set(object, 15);
  47.   printf("%d\n", object->get(object));
  48.   delete_Object(object);
  49.   return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement