/* * Cat class. * * This is a subclass of the animal class */ #include #include #include "animal_priv.h" #include "animal_p.h" /* * We need access to animal's definition, so we can embbed it * within our sub-class */ struct cat { struct animal animal; }; void __cat_sound(void) { printf("The cat makes MEOOOOOW\n"); } struct cat *cat_new(void) { return (struct cat*)malloc(sizeof(struct cat)); } void cat_ctor(struct cat *cat) { animal_ctor((struct animal *)cat, __cat_sound); printf("cat_ctor: cat: %p animal: %p\n", cat, &cat->animal); } void cat_dtor(struct cat *cat) { animal_dtor((struct animal *)cat); }