请编写一个抽象类Shape,在此基础上派生出类Rectangle和 Circle,二者都有计算对象面积的函数getArea()、计算对象周长 的函数getPerim()。,实用C++
时间: 2024-02-22 11:55:30 浏览: 76
好的,以下是C++代码实现:
```c++
#include<iostream>
using namespace std;
class Shape{
public:
virtual double getArea() = 0;
virtual double getPerim() = 0;
};
class Rectangle : public Shape{
private:
double width;
double height;
public:
Rectangle(double w, double h){
width = w;
height = h;
}
double getArea(){
return width * height;
}
double getPerim(){
return 2 * (width + height);
}
};
class Circle : public Shape{
private:
double radius;
public:
Circle(double r){
radius = r;
}
double getArea(){
return 3.14 * radius * radius;
}
double getPerim(){
return 2 * 3.14 * radius;
}
};
int main(){
Rectangle r(2, 3);
Circle c(4);
cout << "Rectangle area: " << r.getArea() << endl;
cout << "Rectangle perimeter: " << r.getPerim() << endl;
cout << "Circle area: " << c.getArea() << endl;
cout << "Circle perimeter: " << c.getPerim() << endl;
return 0;
}
```
在这个例子中,我们定义了一个抽象类Shape,其中包含了两个纯虚函数getArea和getPerim。然后我们通过继承Shape类,并实现其中的纯虚函数来定义了Rectangle和Circle两个具体类。这两个具体类都有自己的属性和方法,其中getArea和getPerim方法分别计算了矩形和圆形的面积和周长。注意,在这里我们使用了虚函数来定义纯虚函数,这样可以确保在派生类中必须实现这些方法,否则会报错。最后在main函数中,我们创建了一个Rectangle对象和一个Circle对象,并分别调用了它们的getArea和getPerim方法。
阅读全文