f1206.cpp
资源名称:c.rar [点击查看]
上传用户:puke2000
上传日期:2022-07-25
资源大小:912k
文件大小:1k
源码类别:

C#编程

开发平台:

Visual C++

  1. //=====================================
  2. // f1206.cpp
  3. // Spreading Virtual
  4. //=====================================
  5. #include<iostream>
  6. #include<cmath>
  7. using namespace std;
  8. //-------------------------------------
  9. class Shape{
  10. protected:
  11.   double xCoord, yCoord;
  12. public:
  13.   Shape(double x, double y) : xCoord(x),yCoord(y){}
  14.   virtual double area()const{ return 0.0; }
  15. };//-----------------------------------
  16. class Circle : public Shape{
  17. protected:
  18.   double radius;
  19. public:
  20.   Circle(double x, double y, double r) : Shape(x,y),radius(r){}
  21.   double area()const{ return 3.14 * radius * radius; }
  22. };//-----------------------------------
  23. class Rectangle : public Shape{
  24. protected:
  25.   double x2Coord, y2Coord;
  26. public:
  27.   Rectangle(double x1, double y1, double x2, double y2)
  28.    : Shape(x1,y1), x2Coord(x2), y2Coord(y2){}
  29.   double area()const;
  30. };//-----------------------------------
  31. double Rectangle::area()const{
  32.   return abs((xCoord-x2Coord)*(yCoord-y2Coord));
  33. }//------------------------------------
  34. void fun(const Shape& sp){
  35.   cout<<sp.area()<<"n";
  36. }//------------------------------------
  37. int main(){
  38.   fun(Circle(2, 5, 4));
  39.   fun(Rectangle(2, 4, 1, 2));
  40. }//====================================
  41.