图形类的继承与派生(图形类派生出正方形类和圆类) (1)定义CShape类 操作: 求面积的纯虚函数virtual double area( ) =0; 输出的纯虚函数virtual void print( ) =0; (2)定义正方形类CSquare,公有继承CShape类 操作: 构造函数、setEdge、getEdge、求面积的虚函数virtual double area( ) ;输出的虚函数virtual void print( ) ;等 数据: 成员变量edge作为正方形的边长 (3)定义圆类CCircle,公有继承CShape类 操作: 构造函数、setRadius、getRadius、求面积的虚函数virtual double area( ) ;输出的虚函数virtual void print( ) ;等 数据: 成员变量radius作为圆的半径 (4)定义主函数,对正方形类CSquare和圆类CCircle的功能进行测试。
时间: 2023-06-14 09:04:20 浏览: 96
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
以下是代码示例:
```cpp
#include <iostream>
using namespace std;
class CShape {
public:
virtual double area() = 0; // 求面积的纯虚函数
virtual void print() = 0; // 输出的纯虚函数
};
class CSquare : public CShape {
public:
CSquare(double edge) : edge(edge) {} // 构造函数
void setEdge(double edge) { this->edge = edge; }
double getEdge() { return edge; }
virtual double area() { return edge * edge; } // 求面积的虚函数
virtual void print() { cout << "正方形,边长为" << edge << ",面积为" << area() << endl; } // 输出的虚函数
private:
double edge; // 正方形的边长
};
class CCircle : public CShape {
public:
CCircle(double radius) : radius(radius) {} // 构造函数
void setRadius(double radius) { this->radius = radius; }
double getRadius() { return radius; }
virtual double area() { return 3.14 * radius * radius; } // 求面积的虚函数
virtual void print() { cout << "圆形,半径为" << radius << ",面积为" << area() << endl; } // 输出的虚函数
private:
double radius; // 圆的半径
};
int main() {
CSquare square(5);
square.print();
CCircle circle(3);
circle.print();
return 0;
}
```
输出结果:
```
正方形,边长为5,面积为25
圆形,半径为3,面积为28.26
```
阅读全文