基类为正方形类,数据包含边长,方法包含求面积、周长、构造 函数、输出函数;子类为正方体,保护继承于正方形类,数据包含高, 新增方法包含构造函数、求体积函数,在主函数中构建子类对象,并 将输出结果保存在文件中。
时间: 2024-02-23 22:00:14 浏览: 53
按以下描述和要求建立两个类:基类 Rectangle(矩形类) 和派生类 Cube(正方体)
好的,这是一个关于基类正方形和子类正方体的继承关系的问题。
首先,我们需要定义基类正方形类,它的数据成员包含边长,方法包括求面积、周长、构造函数、输出函数。代码如下:
```cpp
class Square {
protected:
double side; // 边长
public:
Square(double s): side(s) {} // 构造函数
double area() { return side * side; } // 求面积
double perimeter() { return 4 * side; } // 求周长
void print() { cout << "Side: " << side << endl; } // 输出函数
};
```
接着,我们需要定义子类正方体,它保护继承于正方形类,数据成员包含高,新增方法包含构造函数、求体积函数。代码如下:
```cpp
class Cube: protected Square {
private:
double height; // 高
public:
Cube(double s, double h): Square(s), height(h) {} // 构造函数
double volume() { return area() * height; } // 求体积
};
```
最后,在主函数中构建子类对象,并将输出结果保存在文件中。代码如下:
```cpp
int main() {
Cube cube(2, 3); // 构建子类对象
ofstream out("result.txt"); // 创建输出文件流
out << "Side: " << cube.side << endl; // 输出边长
out << "Height: " << cube.height << endl; // 输出高
out << "Area: " << cube.area() << endl; // 输出面积
out << "Perimeter: " << cube.perimeter() << endl; // 输出周长
out << "Volume: " << cube.volume() << endl; // 输出体积
out.close(); // 关闭输出文件流
return 0;
}
```
这样就完成了基类正方形和子类正方体的定义和使用,并将输出结果保存在文件中。
阅读全文