qq_39677327 2022-06-27 16:26 采纳率: 94.9%
浏览 131
已结题

定义一个Shape抽象类,在此基础上派生出矩形Rectangle(长L=5,宽W=3)和圆形Circle类(半径R=4)

定义一个Shape抽象类,在此基础上派生出矩形Rectangle(长L=5,宽W=3)和圆形Circle类(半径R=4),二者都有GetPerim()函数计算对象的周长。根据类定义和部分提示代码,完成设计。运行结果下:

img

提示代码如下:

class Shape//抽象类
{public:
Shape(){}
~Shape(){}
virtual float GetPerim()=0;};//计算图形周长
void main( )
{Shape * sp;
sp=new Circle(4);
......}

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2022-06-27 16:41
    关注

    构造子类,实现虚函数就可以了啊

    class Shape//抽象类
    {
    public:
    Shape(){}
    ~Shape(){}
    virtual float GetPerim()=0;
    };
    class Rectangle : public Shape
    {
       public:
         Rectangle() {}
         Rectangle(float l,float w) : L(l),W(w) {}
         ~Rectangle() {}
         float GetPerim() {return 2*(L+W);}     
        private:
            float L,W;
       
    };
    class Circle : public Shape
    {
        public:
            Circle() {}
            Circle(float r) : R(r) {}
            ~Circle() {}
            float GetPerim() {return 2*3.1415926*R;}
         private:
            float R;
    };
    void main( )
    {
        Shape * sp;
        sp=new Circle(4);
        cout<<sp->GetPerim()<<endl;
        sp = new Rectangle(5,3);
        cout<<sp->GetPerim()<<endl;
        return 0;
    }
     
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 7月6日
  • 已采纳回答 6月28日
  • 创建了问题 6月27日