编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,二者都有计算面积的函数,计算周长的函数

计算面积的函数为GetArea(),计算对象周长的函数GetPerim().帮忙解答一下,谢谢啦~~... 计算面积的函数为GetArea(),计算对象周长的函数GetPerim().
帮忙解答一下,谢谢啦~~
展开
 我来答
百度网友8865952
推荐于2018-03-20 · TA获得超过387个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:269万
展开全部

#include<iostream>

#define PI 3.1415926;

using namespace std;

class Shape  //抽象类的  定义

{

public:

 virtual double GetArea()  = 0;  //纯虚函数

 virtual double GetPerim()  = 0;  //纯虚函数

};

class Rectangle : public Shape   //矩形类,公有继承

{

public: Rectangle(double aa, double bb)   //带参数的 构造函数

  {

   a=aa;

   b=bb;

   cout<<"长"<<a<<"宽"<<b<<endl;

  }

 virtual 埋亏double GetArea() 

  { 

   return a * b; 

  } 

 virtual double GetPerim()

  { 

   return 2*( a + b ); 

  }

private: 

 double a; 

 double b;

};

class Circle : public Shape    //圆类,公有继承    

 {

 public: Circle(double rr)      //带参数的 构造函数

    {

    r=rr;

    cout<<"半径"<<r<<endl;

   }  

 孝樱   virtual double GetArea() 

    { 

     return r * r * PI; 

    }  

    virtual double GetPerim() 

    { 

     return 2 * r * PI;

    }

private: 

 double r;

};

 void main()

 { 

  double length, width;

  cout << "输入长和宽: "; 

  cin >巧液丛> length >> width;

  Rectangle rect(length, width);

  cout << "面积是:"<< rect.GetArea() << endl<<"周长是:"<<rect.GetPerim()<<endl; 

  

  double rr; 

  cout << "输入半径: "; 

  cin >> rr; 

  Circle cir(rr);

  cout << "面积是:"<<cir.GetArea() << endl<<"周长是:"<<cir.GetPerim()<<endl;

 }

spp_space
2009-12-18
知道答主
回答量:1
采纳率:0%
帮助的人:0
展开全部
#include <iostream>using namespace std;class Shape{public: virtual double GetArea() = 0; virtual double GetP() = 0;};class Rectangle : public Shape{private: double a; double b;public: Rectangle(double aa, double bb) {a=aa;b=bb;cout<<"长"<<a<<"宽"<<b<<endl;} virtual double GetArea() { return a * b; } virtual double GetP() { return a + a + b + b; }};class Circle : public Shape{private: double r;public: Circle(double rr) {r=rr;cout<<"袭闭蠢半径"<<r<<endl; } virtual double GetArea() { return r * r * 3.14; } virtual double GetP() { return 2 * r * 3.14; }};void main(){ double length, width; cout << "输入长和宽: "; cin >> length >> width; Rectangle rect(length, width); cout << "面积是:"<< rect.GetArea() << endl<<"周长是:"<<rect.GetP()<<endl; double rr; cout << "输入半拍陪径: "; cin >> rr; Circle cir(rr); cout <<态尘 "面积是:"<<cir.GetArea() << endl<<"周长是:"<<cir.GetP()<<endl;}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乘凝丹0ha09e
2009-12-08 · 超过13用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:36万
展开全部
呵呵,自己思考思考吧,这是编程的基础题了,不思考就学不会如何编程了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式