c++ 1.设计抽象基类Shape类 2.由Shape 类派生出Circle圆类, Rectangle 矩形类, Triangle 三角形类 3.用函数printArea分别实现圆类、矩形类、三角形类的面积 4.用基类Shape类的指针输出圆类、矩形类、三角形类的面积
时间: 2024-03-24 16:38:58 浏览: 86
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
好的,你的问题是关于C++的面向对象编程。以下是代码实现:
```c++
#include <iostream>
using namespace std;
class Shape {
public:
virtual double getArea() const = 0; // 纯虚函数
};
class Circle : public Shape {
public:
Circle(double r) : radius(r) {}
double getArea() const {
return 3.14 * radius * radius;
}
private:
double radius;
};
class Rectangle : public Shape {
public:
Rectangle(double w, double h) : width(w), height(h) {}
double getArea() const {
return width * height;
}
private:
double width;
double height;
};
class Triangle : public Shape {
public:
Triangle(double b, double h) : base(b), height(h) {}
double getArea() const {
return 0.5 * base * height;
}
private:
double base;
double height;
};
void printArea(const Shape& s) {
cout << "面积为:" << s.getArea() << endl;
}
int main() {
Circle c(5);
Rectangle r(3, 4);
Triangle t(5, 6);
printArea(c);
printArea(r);
printArea(t);
Shape* sp;
sp = &c;
cout << "圆的面积为:" << sp->getArea() << endl;
sp = &r;
cout << "矩形的面积为:" << sp->getArea() << endl;
sp = &t;
cout << "三角形的面积为:" << sp->getArea() << endl;
return 0;
}
```
在这个程序中,我们首先定义了一个抽象基类Shape,其中包含了一个纯虚函数getArea(),表示获取形状的面积。然后,我们从Shape类派生出了Circle、Rectangle和Triangle三个类,并分别实现了它们的getArea()函数。在主函数中,我们使用printArea()函数分别输出了这三个形状的面积。最后,我们使用Shape类的指针输出了这三个形状的面积。
希望这个例子能够帮助你理解面向对象编程的概念。如果你还有其他问题,可以继续向我提问。
阅读全文