已知一个全局函数printArea(arg),其中,arg为某一种平面图形,该函数的作用是打印参数arg所表示图形的面积。先假设,只存在正方形、圆形、正三角形三种平面图形。使用继承的方式,设计相关的类,并实现该全局函数的功能。
提示:设计基类Shape,设计派生类Square,Circle,Triangle
大神帮我看看,我不会用函数啊,而且这提示说的也不懂,既然是全局函数,要派生有什么用?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 一行白鹭上青天 2016-06-05 12:01关注
这是代码有不适当的地方请大家提出来,谢谢
#include
#include
using namespace std;class Shape
{
public:
virtual double area() = 0;
};class Circle :public Shape
{
public:
Circle(int radius){
this->radius = radius;
}
virtual double area(){
return 3.14*radius*radius;
}
private:
int radius;
};
class Square :public Shape
{
public:
Square(int rim){
this->rim = rim;
}
virtual double area(){
return rim*rim;
}
private:
int rim;
};class Triangl :public Shape
{
public:
Triangl(double rim){
this->rim = rim;
}
virtual double area(){
double i = rim*rim;
double j = (rim/2)*(rim/2);
double hige = sqrt(i - j);
return rim*hige/2;
}
private:
double rim;
};void printArea(Shape *arg)
{
cout << arg->area() << endl;
}int main(int argc, char* argv[])
{
Shape *squ = new Square(2);
Shape *cir = new Circle(2);
Shape *tri = new Triangl(5);printArea(squ); printArea(cir); printArea(tri); delete squ; delete cir; delete tri; return 0;
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器