您的位置:首页 > 其它

纯虚函数与抽象类

2013-11-27 16:22 260 查看
由于任何一个从抽象类派生的新类都会继承纯虚函数的特征--无任何功能

因此要创建这个新类的对象必须为每一个纯虚函数赋予功能

#include <iostream>

using namespace std;

class shape

{

  public:

  virtual double area()=0;

};

class A:public shape

{

  protected:

  double h,w;

  public:

  A(double H,double W){h=H,w=H;}

  double area(){return h*w/2;}

};

class B:public A

{

  public:

  B(double H,double W):A(H,W){}

  double area(){return h*w;}

};

class C:public shape

{

  protected:

  double radius;

  public:

  C(double r){radius=r;}

  double area(){return radius*radius*3.14;}

};

void main()

{

  shape*s;

  int choice=0;

  while(choice<9)

  {

    choice=0;

  bool quit=false;

  cout<<"(0)退出(1)三角形( 2)长方形(3)圆"<<endl;

  cout<<"请选择:";

  cin>>choice;

  switch(choice)

  {

    case 0:quit=true;

      break;

    case 1:s=new A(5.0,6.0);

      cout<<"三角形的面积为:"<<s->area()<<endl;

      break;

    case 2:s=new B(70.0,80.0);

      cout<<"长方形的面积为:"<<s->area()<<endl;

      break;

    case 3:s=new C(9.0);

      cout<<"圆的面积为:"<<s->area()<<endl;

      break;

    default:cout<<"请输入到之间的数字。";

      break;

  }

  if(choice<4&&choice>0)

  delete s;

  if(quit)

    break;

  }

}

抽象类 无法实例化(ADT *p = new ADT)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: