C++第六章第四题

#include <iostream>
using namespace std;
class Shape
{public:
 virtual double area() const =0;       
};


class Circle:public Shape
{public:
Circle(double r):radius(r){}                                  
  virtual double area() const {return 3.14159*radius*radius;}; 
 protected:
  double radius;                                               
};

class Rectangle:public Shape
{public:
 Rectangle(double w,double h):width(w),height(h){}            
 virtual double area() const {return width*height;}            
protected:
  double width,height;                                         
};

class Triangle:public Shape
{public:
  Triangle(double w,double h):width(w),height(h){}              
  virtual double area() const {return 0.5*width*height;}       
 protected:
  double width,height;                                          
};

void printArea(const Shape &s)
{cout<<s.area()<<endl;}                                          

int main()
{
 Circle circle(10.0);                                           
 cout<<"area of circle    =";         
 printArea(circle);                                             
 Rectangle rectangle(4.5,8.0);                                  
 cout<<"area of rectangle =";                                    
 printArea(rectangle);                                          
 Triangle triangle(4.5,8.0);
 cout<<"area of triangle  =";
 printArea(triangle);       
 return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值