构造一个类Geometry及其派生类,该类主要实现关于几何图形的基本操作。对于基类“几何图形”,有求面积、求周长的函数(纯虚函数),其派生类圆和矩形主要有初始化(构造函数),求(表)面积,求周长操作,试在主函数中分别定义圆、矩形的对象,在main中给初值,并调用其成员函数实现其相应操作。
时间: 2023-06-26 22:08:58 浏览: 78
设计基类点类(Point)、直接派生类圆类(Circle)、间接派生类圆柱体类(Cylinder),将求面积的函数(area)声明成虚函数,并在主函数实现虚函数
以下是示例代码:
```c++
#include <iostream>
using namespace std;
class Geometry {
public:
virtual double getArea() = 0; // 纯虚函数,求面积
virtual double getPerimeter() = 0; // 纯虚函数,求周长
};
class Circle : public Geometry {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double getArea() {
return 3.14 * radius * radius;
}
double getPerimeter() {
return 2 * 3.14 * radius;
}
};
class Rectangle : public Geometry {
private:
double length, width;
public:
Rectangle(double l, double w) {
length = l;
width = w;
}
double getArea() {
return length * width;
}
double getPerimeter() {
return 2 * (length + width);
}
};
int main() {
Circle c(5);
Rectangle r(3, 4);
cout << "Circle area: " << c.getArea() << endl;
cout << "Circle perimeter: " << c.getPerimeter() << endl;
cout << "Rectangle area: " << r.getArea() << endl;
cout << "Rectangle perimeter: " << r.getPerimeter() << endl;
return 0;
}
```
这个程序定义了一个 Geometry 类和它的两个派生类 Circle 和 Rectangle。在 Geometry 类中,定义了两个纯虚函数 getArea 和 getPerimeter,分别用于求面积和周长。在 Circle 类和 Rectangle 类中,分别实现了这两个函数。在主函数中,分别创建了 Circle 和 Rectangle 的对象,并调用其成员函数实现相应的操作。
阅读全文