![]()
这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是C++语言实现,能够正确编译通过。 【C++代码】 classDP1{ public: static void draw_a_line(double x1, double y1,double x2, double y2){ //省略具体实现 } ); classDP2{ public: static void drawline(double x1, double x2,double y1, double y2){ //省略具体实现 } }; classDrawing{ public: {{U}} (1) {{/U}} void drawLine(double x1,double y1,double x2,double y2)=0; }; class V1Drawing:publicDrawing{ public: void drawLine(double x1, double y1,double x2, double y2){DP1::draw_a_line(x1,y1,x2,y2); }}; class V2Drawing:publicDrawing{ public: void drawLine(double x1, double y1, double x2, double y2){ {{U}} (2) {{/U}}; } }; class Shape{ private: {{U}} (3) {{/U}} _dp; public: ShapeDrawing *dp); virtual void draw()=0; void drawLine(double x1, double y1, double x2, double y2); }; Shape::ShapeDrawing *dp) {_dp = dp; } void Shape::drawLine(double x1, double y1, double x2, double y2) { //画一条直线 {{U}} (4) {{/U}}; } class Rectangle: public Shape{ private: double _x1,_y1,_x2,_y2; public: RectangleDrawing *dp, double x1, double y1, double x2, double y2); void draw(); }; Rectangle::RectangleDrawing *dp, double x1, double y1, double x2, double y2) :{{U}} (5) {{/U}} { _x1=x1;_y1=y1;_x2=x2;_y2=y2; } void Rectangle::draw() { //省略具体实现 }
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项