#include <stdio.h><stdlib.h> Interface struct Class structshape* Shape( shape_getEdges(shape * shape_getArea( _Shape(shape *triangle * Triangle( bottom, triangle_getEdges(triangle * triangle_getArea(triangle * _Triangle(triangle *rectangle * Rectangle( bottom, rectangle_getEdges(rectangle * rectangle_getArea(rectangle * _Rectangle(rectangle * (*getEdges)(shape* (*getArea)(shape* Shape(* obj = (shape *) malloc(->edges =->getEdges =->getArea = shape_getEdges(shape* obj-> shape_getArea( - _Shape(shape *(obj ==* (*getEdges)(triangle * (*getArea)(triangle *triangle * Triangle( bottom, * obj = (triangle*) malloc( obj->super = Shape(->bottom =->height =->getEdges =->getArea = triangle_getEdges(triangle * obj->super-> triangle_getArea(triangle * (obj->bottom * obj->height) / _Triangle(triangle *->(triangle ==* (*getEdges)(rectangle * (*getArea)(rectangle *rectangle * Rectangle( bottom, * obj = (rectangle *)malloc( obj->super = Shape(->bottom =->height =->getEdges =->getArea = rectangle_getEdges(rectangle * obj->super-> rectangle_getArea(rectangle * (obj->bottom * obj-> _Rectangle(rectangle *->(obj ==* shapeObj = Shape(, shapeObj->, shapeObj->* triangleObj = Triangle(, , triangleObj->, triangleObj->* rectangleObj = Rectangle(, , rectangleObj->, rectangleObj->