编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,两者都有计算对象面积

编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,两者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()。... 编写一个抽象类Shape,在此基础上派生出类Rectangle和Circle,两者都有计算对象面积的函数getArea()、计算对象周长的函数getPerim()。 展开
 我来答
热情的浪狼
2015-06-26
知道答主
回答量:5
采纳率:0%
帮助的人:4.5万
展开全部

  #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;


  }

追问
不能运行啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式