c语言:给出下面的基类: class area c_ 1 protected: double height; double width; public: area_c_ (double r, double s) {height=r;width=s; } virtual double area () = 0; 要求: C (1)建立基类area_cl 的两个派生类rectangle与isosceles,让每一个派生类都包含一个函数 area(),分别用米这回短形与三角形的面积。用构造函数对 height 与width 进行初始化。 (2)写出主程序,用来求height 与width 分别为10.0与5.0 的矩形面积,以及求 height 与 width 分别为4.0与6.0的三角形面积。 (3)要求通过使用基类指针访问虛丽数的方法(即运行时的多态性)分别求出矩形 和三角形面积。
时间: 2024-02-03 10:03:34 浏览: 26
以下是符合要求的 C 代码:
```
#include <iostream>
using namespace std;
class area_c_ {
protected:
double height;
double width;
public:
area_c_ (double r, double s) {
height = r;
width = s;
}
virtual double area () = 0;
};
class rectangle : public area_c_ {
public:
rectangle(double r, double s) : area_c_(r, s) {}
double area() {
return height * width;
}
};
class isosceles : public area_c_ {
public:
isosceles(double r, double s) : area_c_(r, s) {}
double area() {
return height * width / 2;
}
};
int main() {
area_c_ *p;
rectangle r(10.0, 5.0);
isosceles i(4.0, 6.0);
p = &r;
cout << "矩形的面积是:" << p->area() << endl;
p = &i;
cout << "三角形的面积是:" << p->area() << endl;
return 0;
}
```
输出结果为:
```
矩形的面积是:50
三角形的面积是:12
```