这个问题是在要求设计一个基类Shape,该类包括3个属性:图形名称(name)、图形面积(area)、图形周长(perimeter)。该类包含3个成员函数:calarea(),计算并返回该图形的面积;calperime(),计算并返回该图形的周长。该类包含3个成员函数:calarea(),计算并返回该图形的面积;calperime(),计算并返回该图形的周长。
时间: 2024-02-15 07:04:26 浏览: 64
编写一个抽象类Shape
4星 · 用户满意度95%
好的,你的问题是关于设计一个基类Shape,它包括哪些属性和成员函数,对吗?那么我可以给你一些关于这个基类的建议。
首先,根据你的要求,Shape类需要包括三个属性:图形名称(name)、图形面积(area)、图形周长(perimeter)。这三个属性都应该是protected类型,因为它们需要被子类访问和修改。
其次,Shape类需要包括两个成员函数:calarea()和calperime()。这两个函数都应该是虚函数,因为它们需要被子类重写。calarea()函数需要计算并返回该图形的面积,而calperime()函数需要计算并返回该图形的周长。
最后,由于Shape类是一个基类,我们需要将其定义为抽象类,也就是说它不能被直接实例化。因此我们需要在Shape类中定义一个纯虚函数show(),让子类必须实现该函数,才能被实例化。
下面是一个示例代码实现:
```c++
class Shape {
protected:
string name;
double area;
double perimeter;
public:
virtual double calarea() = 0;
virtual double calperime() = 0;
virtual void show() = 0;
};
```
这个代码中,我们定义了一个Shape类,它包含了三个protected属性,两个纯虚函数和一个纯虚函数。由于calarea()和calperime()是纯虚函数,因此Shape类被定义为抽象类,不能被直接实例化。
阅读全文