From 6ed9a9699997a2853ec1c9e91747c251e5cfc97b Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Sun, 15 Jun 2014 03:50:43 +0200 Subject: damn --- ccc/ooc.c | 78 --------------------------------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 ccc/ooc.c (limited to 'ccc/ooc.c') diff --git a/ccc/ooc.c b/ccc/ooc.c deleted file mode 100644 index aa20488..0000000 --- a/ccc/ooc.c +++ /dev/null @@ -1,78 +0,0 @@ -#include "ooc.h" -#include "stdio.h" -#include "string.h" - - -struct van { - struct vehicle base; - int cubic_size; -}; - -struct bus { - struct vehicle base; - int seats; -}; - -struct van* -make_van() -{ - struct van* v = malloc(sizeof(struct van)); - v->base.type = "van"; - v->cubic_size = 12; - return v; -} - -struct bus* -make_bus() -{ - struct bus* v = malloc(sizeof(struct bus)); - v->base.type = "bus"; - v->seats=112; - return v; -} - -struct vehicle* -make_vehicle(const char* type) -{ - if(!strcmp(type, "van")) return make_van(); - if(!strcmp(type, "bus")) return make_bus(); - return NULL; -} - -void -do_something_with_a_bus(struct vehicle* v) -{ - ((struct bus*)v)->seats = 13; -} - -void -do_something_with_a_van(struct vehicle* v) -{ - ((struct van*)v)->cubic_size = 11; -} - -void -do_something(struct vehicle* v) -{ - if(!strcmp(v->type, "van")) return do_something_with_a_van(v); - if(!strcmp(v->type, "bus")) return do_something_with_a_bus(v); -} - -int -main(void) { - struct van my_van; - struct vehicle *something = &my_van; - my_van.cubic_size = 100; - my_van.base.power = 99; - printf("%d\n", something->power); - printf("%d\n", my_van.base.power); - - struct bus* bus = make_vehicle("bus"); - printf("%s\n", bus->base.type); - printf("%d\n", bus->seats); - do_something(bus); - printf("%d\n", bus->seats); - - return 0; -} - -- cgit v1.2.3