diff options
| author | Carlos Maiolino <[email protected]> | 2025-07-10 22:55:07 +0200 |
|---|---|---|
| committer | Carlos Maiolino <[email protected]> | 2025-07-10 22:56:55 +0200 |
| commit | d98f46ce647846b0aa30b2e16a30fd4e152a1bf5 (patch) | |
| tree | 267474fcc77cf20b428f6f4c7f768ca09f4cfe0e /C/OOP/cat | |
| parent | 869e68986aa8f69af6e7842260a68d1e5c6f796f (diff) | |
Add new code
Signed-off-by: Carlos Maiolino <[email protected]>
Diffstat (limited to 'C/OOP/cat')
| -rw-r--r-- | C/OOP/cat/cat.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/C/OOP/cat/cat.c b/C/OOP/cat/cat.c new file mode 100644 index 0000000..c513bb6 --- /dev/null +++ b/C/OOP/cat/cat.c @@ -0,0 +1,41 @@ +/* + * Cat class. + * + * This is a subclass of the animal class + */ + +#include <stdio.h> +#include <stdlib.h> + +#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); +} |
