/* Animal class private definition */ #ifndef ANIMAL_PRIV_H #define ANIMAL_PRIV_H /* * We use a "private" definition as a way to encapsulate it, hiding * it from the users. * * Access to its private definition is only allowed to its sub-classes. * * We could enforce it by moving here the allocator and constructors */ struct animal { char *name; void (*make_sound) (void); }; #endif /* ANIMAL_PRIV_H */