class area_ c1 ( protected: double height; double width; public: area_c1 (double r, double s) height=r;width=s; virtual double area () = 0; 要求: (1)建立基类area_cl 的两个派生类rectangle 与isosceles,让每一个派生类都包含一个函数area(),分别用来返回矩形与三角形的面积。用构造函数对 height 与 width 进行初始化。
时间: 2024-03-11 16:49:49 浏览: 94
好的,我理解你的问题是想让我帮你完成一个基类和两个派生类的代码实现,其中基类包含一个纯虚函数area(),派生类分别为矩形和等腰三角形,并且通过构造函数对height和width进行初始化。那么以下是代码实现:
```c++
class area_c1 {
protected:
double height;
double width;
public:
area_c1(double r, double s): height(r), width(s) {}
virtual double area() = 0;
};
class rectangle: public area_c1 {
public:
rectangle(double r, double s): area_c1(r, s) {}
double area() { return height * width; }
};
class isosceles: public area_c1 {
public:
isosceles(double r, double s): area_c1(r, s) {}
double area() { return height * width / 2; }
};
```
在基类中,我们定义了两个保护成员变量height和width,并在构造函数中进行了初始化,同时定义了一个纯虚函数area()。在派生类中,我们分别定义了矩形和等腰三角形类,并在构造函数中调用了基类的构造函数,对height和width进行了初始化,然后分别实现了area()函数,分别返回矩形和三角形的面积。
阅读全文