现在的位置: 首页 > 综合 > 正文

抽象类实例

2018年04月14日 ⁄ 综合 ⁄ 共 1014字 ⁄ 字号 评论关闭

#include <iostream>
using namespace std;
class  Shape
{
public:
 virtual double area()=0;
};
/*三角形类*/
class Trigon:public Shape
{
protected:
 double h,w;
public:
 Trigon(double H,double W)
 {
  h=H;
  w=W;
 }
 double area()
 {
  return h*w/2;
 }
};
/*正方形类*/
class Square:public Trigon
{
public:
 Square (double H,double W):Trigon(H,W){}
 double area(){return h*w;}
};
/*圆    类*/
class Circle:public Shape
{
protected:
 double raius;  /*半径*/
public:
 Circle(double r){raius=r;}
 double area()
 {return raius*raius*3.14;}
};
int main()
{
 Shape *p;
 int choice=0;
  while(1)
  {
   bool quit=false;
   cout<<"[0]退出[1]三角形[2]正方形[3]圆"<<endl<<"请选择:";
   cin>>choice;
   switch (choice)
   {
   case 0:
    quit=true;
    break;
   case 1:
    p=new Trigon(5.0,6.0);
    cout<<"三角形的面积:"<<p->area()<<endl;
    break;
   case 2:
    p=new Square(60,60);
    cout<<"正方形的面积:"<<p->area()<<endl;
    break;
   case 3:
    p=new Circle(9.0);
    cout<<"圆的面积:"<<p->area()<<endl;
    break;
   default:cout<<"请输入0到3之间的数字!"<<endl;
    break;
   }
   if (choice<4&&choice>0)
   {
    delete p;
   }
   if (quit==true)
   {
    break;
   }
  }
 return 0;
}

抱歉!评论已关闭.