#ifndef POC__SHAPE_H #define POC__SHAPE_H struct shape; /* Calculates the area of the shape and returns the value. */ double shape_area(struct shape *shape); typedef double (*shape_area_t)(struct shape *); /* Deallocates the object. */ void shape_destroy(struct shape *shape); typedef void (*shape_destroy_t)(struct shape *); struct shape *shape_create( void *obj, shape_area_t area, shape_destroy_t destroy); #endif