多态的简单应用

//test.cc
#include <iostream>
using namespace std;
const float PI = 3.1415;
/****************************
*多态的简单应用
*创建时间:2011.07.25
*修改时间:2011.07.25
*作者:hahaya
*****************************/
class Shape
{
    public:
virtual float area() = 0;
};
class Rectangle:public Shape
{
    public:
Rectangle(float length, float width)
{
    this->length = length;
    this->width = width;
}
float area()
{
    return length*width;
}
    private:
float length;
float width;
};
class Circle:public Shape
{
    public:
Circle(int r)
{
    this->r = r;
}
float area()
{
    return PI*r*r;
}
    private:
float r;
};
class TotalArea
{
    public:
void Total(Shape *sh)
{
    total += sh->area();
}
void PrintArea()
{
    cout << "Toal Area:" << total << endl;
}
    private:
float total;
};
int main()
{
    Shape *sh1 = new Rectangle(5, 10);
    Shape *sh2 = new Circle(1);
    TotalArea tot;
    tot.Total(sh1);        //调用Rectangle类的area()函数
    tot.Total(sh2);        //调用Circle类的area()函数
    tot.PrintArea();
    return 0;
}

程序运行结果:


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值