grapple_Eisen 2016-06-05 11:09 采纳率: 75%
浏览 1366
已采纳

大神帮我看看,我不会用函数啊,而且这提示说的也不懂,既然是全局函数,要派生有什么用?

已知一个全局函数printArea(arg),其中,arg为某一种平面图形,该函数的作用是打印参数arg所表示图形的面积。先假设,只存在正方形、圆形、正三角形三种平面图形。使用继承的方式,设计相关的类,并实现该全局函数的功能。
提示:设计基类Shape,设计派生类Square,Circle,Triangle

  • 写回答

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;
    

    }

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器