1.设计抽象基类Shape类 2.由Shape类派生出Circle圆类,Rectangle矩形类,Triangle三角形类 3.用函数printArea分别实现圆类、矩形类、三角形类的面积 4.用基类Shape类的指针输出圆类、矩形类、三角形类的面积
时间: 2024-03-03 18:53:37 浏览: 79
c++ 形状类Shape(派生出圆类Circle和矩形类Rectangle)
好的,您的问题是如何设计抽象基类Shape类,以及如何用基类Shape类的指针输出派生类的面积。
首先,我们可以设计抽象基类Shape类,该类包含一个纯虚函数getArea(),用于计算图形的面积,以及一个虚函数printArea(),用于输出图形的面积。
```c++
class Shape {
public:
virtual double getArea() = 0;
virtual void printArea() {
std::cout << "The area of the shape is: " << getArea() << std::endl;
}
};
```
接下来,我们可以派生出Circle圆类、Rectangle矩形类和Triangle三角形类,并实现它们的getArea()函数和printArea()函数。
以Circle圆类为例:
```c++
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double getArea() override {
return 3.14159 * radius * radius;
}
};
```
其中,radius为圆的半径,getArea()函数返回圆的面积,printArea()函数已经在基类中实现。
接下来,我们可以通过基类Shape类的指针输出派生类的面积。
以Circle圆类为例:
```c++
Shape* pShape = new Circle(5.0);
pShape->printArea();
delete pShape;
```
这段代码创建了一个Circle圆类对象,并将其赋值给一个指向基类Shape类的指针pShape,然后通过pShape指针调用printArea()函数,输出圆的面积。
同样的方法也可以用于输出Rectangle矩形类和Triangle三角形类的面积。
阅读全文