阅读以下说明和C代码,将入(n)处的字句写在的对应栏内。 【说明】 在一个简化的绘图,支持的图形种类有点(point)和圆(circle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape t、 point t和circle t分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。 【C代码】 typedef enum { point,circle } shape type; /* 的两种图形:点和圆 */ typedef struct { /* 基本的图形类型 */ shape_type type; /* 图形中类标识:点或者圆*/ void (*destroy) (); /* 销毁图形操作的函数指针*/ void (*draw) (); /* 绘制图形操作的函数指针*/ } shape_t; typedef struct { shape_t common; int x; iht y; } point_t; /* 定义点类 型, x, y为点坐标*/ void destroyPoint (point_t* this) { free (this); printf ('Point destoryed! /n'); } ) /* 销毁点对象*/ void drawPoint(point_t* this) { printf('P(%d,%d)', this->x, this->y); } /* 绘制点对象*/ shape_t* createPoint (va_list* ap) (/* 创建点对象,并设置其属性*/ point_t* p_point; if ( (p_point= (point_t*)malloc (sizeof (point_t)) ) ==NULL) returnNULL; p_point->common, type = point; p_point->common, destroy = destroyPoint; p_point->common.draw = drawPoint; p_point->x = va_arg(*ap, int); /* 设置点的横坐标*/ p_point->y = va_arg(*ap, int); /* 设置点的纵坐标*/ return (shape_t*)p_ooint; /*返回点对象指针*/ } typedef struct { /*定义圆类型*/ shape_t common; point_t 4center; /*圆心点*/ int radius; /*圆半径*/ } circle_t; void destroyCircle(circle_t* this){ free((1)); free(this); printf('Circle destoryed!/n'); } void drawCircle(circle_t* this) { print f ('C ('); (2).draw(this->center); /*绘制圆心*/ printf(',%d) ', this->radius); } shape_t* createCircle(va_list4 ap) { /*创建一个圆,并设置其属性*/ circle_t4 p circle; if ((p_circle = (circle_t4)malloc (sizeof (circle_t)) ) ==NULL ) return NULL; p_circle->common.type = circle; p_circle->common.destroy = destroy Circle; p_circle->common.draw = drawCircle; (3) = createPoint(ap); /* 设置圆心*/ p_circle->radius = va_arg(*ap, int); /* 设置圆半径*/ return p_circle; } shape_t* createShape(shape_type st, '') { /* 创建某一种具体的图形*/ va_list ap; /*可变参数列表*/ &nbs