2、结合虚函数、继承思想,在基类Base中定义纯虚函数disp(),用来求面积。按照下面给出的部分代码设计派生类直角三角形、正方形和圆形三种图形求面积的方法disp()。 int main() { Base *p; Triangle t(20,20); // Triangle为直角三角形 Square s(20); Circle c(20); p=&t; p->disp(); p=&s; p->disp(); p=&c; p->disp(); } 运行结果为: 三角形面积:200 正方形面积:400 圆形面积:1256.64
时间: 2024-03-14 16:46:17 浏览: 24
下面是代码实现:
```c++
#include <iostream>
#include <cmath>
using namespace std;
class Base {
public:
virtual void disp() = 0; // 纯虚函数,求面积
};
class Triangle : public Base {
public:
Triangle(double b, double h) : base(b), height(h) {}
void disp() override {
double area = 0.5 * base * height;
cout << "三角形面积:" << area << endl;
}
private:
double base;
double height;
};
class Square : public Base {
public:
Square(double l) : length(l) {}
void disp() override {
double area = length * length;
cout << "正方形面积:" << area << endl;
}
private:
double length;
};
class Circle : public Base {
public:
Circle(double r) : radius(r) {}
void disp() override {
double area = M_PI * radius * radius;
cout << "圆形面积:" << area << endl;
}
private:
double radius;
};
int main() {
Base *p;
Triangle t(20, 20);
Square s(20);
Circle c(20);
p = &t;
p->disp();
p = &s;
p->disp();
p = &c;
p->disp();
return 0;
}
```
运行结果:
```
三角形面积:200
正方形面积:400
圆形面积:1256.64
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)