# SimpleDrawingToolsCppVer **Repository Path**: luke-project-practice/simple-drawing-tools-cpp-ver ## Basic Information - **Project Name**: SimpleDrawingToolsCppVer - **Description**: 简单绘图工具 C++ 版本 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-01-05 - **Last Updated**: 2025-03-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: 软考试题 ## README # 原题 ```mermaid classDiagram class DrawCircle <> DrawCircle DrawCircle: +drawCircle(int radius, int x, int y) virtual void class GreenCircle GreenCircle: +drawCircle(int radius, int x, int y) void class RedCircle RedCircle: +drawCircle(int raduis, int x, int y) void DrawCircle<|..GreenCircle DrawCircle<|..RedCircle class Shape Shape: +DrawCircle *drawCircle Shape: +Shape() Shape: +draw() void class Circle Circle: +int x Circle: +int y Circle: +int radius Circle: +draw() void Circle: Circle() Shape<|--Circle Shape-->DrawCircle ``` # 结构更新 ```mermaid classDiagram class DrawCircle <> DrawCircle DrawCircle: +drawCircle(int radius, int x, int y) virtual void class GreenCircle GreenCircle: +drawCircle(int radius, int x, int y) void class RedCircle RedCircle: +drawCircle(int raduis, int x, int y) void DrawCircle<|..GreenCircle DrawCircle<|..RedCircle class Shape Shape: +draw() void class Circle Circle: +int x Circle: +int y Circle: +int radius Circle: +DrawCircle *drawCircle Circle: +draw() void Shape<|--Circle Circle-->DrawCircle ``` 更改的原因是 DrawCircle 类对 Shape 类来说不是必须的。如果有一个 Square 类继承 Shape 类,那么它就不需要 drawCircle 指针。一个 Spuare 类拥有一个 drawCircle 指针既容易引发歧义,也在逻辑上不合理。