设计一个描述正方形的类 Square,并具有计算面积的成员函数 GetArea( )。从 Square 类派生一个矩形类 Rectangle,Rectangle 也使用 GetArea( )函数计算面积。 头文件 SquareRectangle.h 源代码如下: //SquareRectangle.h #include #include class Square { protected: int edge; public: virtual double GetArea(); Square(int edg); ~Square( ) { } }; Square::Square(int edg) { edge=edg; } //求正方形的面积 double Square::GetArea() { double result; result=edge*edge; return result; }
时间: 2024-03-17 22:44:57 浏览: 55
这是一个描述正方形和矩形的类的头文件,其中Square类是一个基类,Rectangle类是一个派生类。以下是头文件SquareRectangle.h的完整代码:
```c++
#pragma once
#include <iostream>
class Square {
protected:
int edge;
public:
Square(int edg);
virtual double GetArea();
virtual ~Square() { }
};
class Rectangle : public Square {
protected:
int width;
public:
Rectangle(int edg, int wid);
double GetArea() override;
~Rectangle() { }
};
Square::Square(int edg) : edge(edg) { }
double Square::GetArea() {
double result = edge * edge;
return result;
}
Rectangle::Rectangle(int edg, int wid) : Square(edg), width(wid) { }
double Rectangle::GetArea() {
double result = edge * width;
return result;
}
```
在这个头文件中,Square类有一个protected变量edge表示正方形的边长,有一个构造函数Square(int edg)和一个虚函数double GetArea(),用于计算正方形的面积。Rectangle类是Square类的派生类,除了继承了Square类的所有成员之外,还有一个protected变量width表示矩形的宽度,有一个构造函数Rectangle(int edg, int wid)和一个重写了GetArea()函数的函数double GetArea(),用于计算矩形的面积。
在实现这个头文件时,需要注意以下几点:
1. 在Square类的构造函数中,需要将传入的参数edg赋值给edge变量。
2. 在Square类的GetArea()函数中,计算正方形面积的公式是edge * edge。
3. 在Rectangle类的构造函数中,需要调用Square类的构造函数,并将传入的参数edg赋值给edge变量,将传入的参数wid赋值给width变量。
4. 在Rectangle类的GetArea()函数中,计算矩形面积的公式是edge * width。
希望以上解答能够帮助您。
阅读全文