编写几个图形类,包括圆、长方形、三角形和直线,每个图形都有相应的成员变量,以及共同的绘制图形方法draw()。为简化编程,该方法可以简单实现。
时间: 2023-04-16 09:03:56 浏览: 123
一个简单的画图程序,可以画线、直线、矩形、多边形、圆、椭圆、并可以这些选中后的图形进行移动,扩大,缩小,删除等操作_做一个小cad程序:支持直线、矩形、椭圆和文
5星 · 资源好评率100%
好的,以下是回复:
题目要求编写几个图形类,包括圆、长方形、三角形和直线,每个图形都有相应的成员变量,以及共同的绘制图形方法draw()。为简化编程,该方法可以简单实现。
我们可以先定义一个基类Shape,然后派生出圆、长方形、三角形和直线这几个子类。每个子类都有自己的成员变量,例如圆的半径、长方形的长和宽等等。而共同的绘制图形方法draw()可以在基类Shape中实现,子类只需要根据自己的特点重写该方法即可。
具体实现可以参考以下代码:
```c++
#include <iostream>
using namespace std;
class Shape {
public:
virtual void draw() {
cout << "绘制图形" << endl;
}
};
class Circle : public Shape {
public:
int radius;
void draw() {
cout << "绘制圆形,半径为" << radius << endl;
}
};
class Rectangle : public Shape {
public:
int length, width;
void draw() {
cout << "绘制长方形,长为" << length << ",宽为" << width << endl;
}
};
class Triangle : public Shape {
public:
int a, b, c;
void draw() {
cout << "绘制三角形,三边长分别为" << a << "、" << b << "、" << c << endl;
}
};
class Line : public Shape {
public:
int length;
void draw() {
cout << "绘制直线,长度为" << length << endl;
}
};
int main() {
Shape* shapes[4];
shapes[] = new Circle();
shapes[1] = new Rectangle();
shapes[2] = new Triangle();
shapes[3] = new Line();
for (int i = ; i < 4; i++) {
shapes[i]->draw();
}
return ;
}
```
在上面的代码中,我们定义了Shape基类和四个派生类Circle、Rectangle、Triangle和Line。每个派生类都有自己的成员变量和重写的draw()方法。在main函数中,我们创建了一个Shape指针数组,并分别用四个派生类的对象初始化。然后通过循环调用每个对象的draw()方法,实现了绘制不同图形的功能。
当然,上面的代码只是一个简单的示例,实际应用中还需要考虑更多的细节问题。不过,希望这个回答能够帮助你理解题目的要求和实现方法。
阅读全文