信管14:纯虚函数示例代码

来源:互联网 发布:simon d 知乎 编辑:程序博客网 时间:2024/06/06 05:36

/* 理解纯虚函数的意义和用法  */

#include<iostream>
using namespace std;

class container{                       //声明抽象类container
protected:
        double radius;
public:
  container(double radius1);        
  virtual double surface_area()=0;   //纯虚函数 
  virtual double volume()=0;        
};

container::container(double radius1)   
{ radius=radius1;
}

class cube:public container            //声明一个正方体派生类cube 
{ public:
  cube(double radius1):container(radius1) 
   { }
  double surface_area()                //定义虚函数surface_area
   { return 6*radius*radius;
   }
  double volume()                       //定义虚函数volume
   { return radius*radius*radius;
   }
};

class sphere:public container            //声明一个球体派生类
{ public:
    sphere(double radius1):container(radius1)
  { };
    double surface_area()              //纯虚函数surface_area
  { return 4*3.1416*radius*radius;
   }
    double volume()                    //纯虚函数volume
   { return 3.1416*radius*radius*radius*4/3;
   }
};


class cylinder: public container       //声明一个圆柱体派生类cylinder
{ double height;
  public:
      cylinder(double radius1,double height1):container(radius1)
       { height=height1;
        }
  double surface_area()                    //定义虚函数surface_area
  { return 2*3.1416*radius*(radius+height);
  }
   
 double volume()                           //定义虚函数volume
  { return 3.1416*radius*radius*height;
  }
};

int main()
{ container *ptr;                   
  cube obj1(2.0);                  
  sphere obj2(2.0);                 
  cylinder obj3(2.0,3.0);   

  ptr=&obj1;                        
  cout<<"正方体的表面积是:"<<ptr->surface_area()<<endl;

  cout<<"正方体的体积是:"<<ptr->volume()<<endl<<endl;
 
  ptr=&obj2;                        
  cout<<"球体表面积是:"<<ptr->surface_area()<<endl;  
  cout<<"球体的体积是:"<<ptr->volume()<<endl<<endl;  

  ptr=&obj3;                       
  cout<<"圆柱体的表面积是:"<<ptr->surface_area()<<endl;
  cout<<"圆柱体的体积是:"<<ptr->volume()<<endl; 
  system("pause");
  return 0;
}

                                             
0 0
原创粉丝点击