实例002——使用虚函数实现运行时多态

使用虚函数实现运行时多态

源码:

#include<iostream>
using namespace std;
class CFigure												//基类-图形类
{
protected:
	double x,y;												//成员变量
public:
	void SetDim(double i,double j=0.0)						//设置图形参数
	{
		x=i;
		y=j;
	}
	virtual void GetShowArea()								//虚函数计算显示面积
	{
		cout<<"无法计算面积\n";
	}
};
class CTriangle:public CFigure									//三角形类
{
public:
	void GetShowArea()												//覆盖虚函数
	{
		cout<<"三角形:底边长:"<<x<<" 高:"<<y<<" 面积:"<<x*0.5*y<<endl;
	}
};
class CRect:public CFigure											//矩形类
{
public:
	void GetShowArea()												//覆盖虚函数
	{
		cout<<"矩形:长: "<<x<<" 宽: "<<y<<" 面积:"<<x*y<<endl;
	}
};
class CCircle:public CFigure											//圆形类
{
public:
	void GetShowArea()												//覆盖虚函数
	{
		cout<<"圆形:半径:"<<x<<" 面积:"<<3.14159*x*x<<endl;
	}
};

int main()
{
	cout<<"使用虚函数实现运行时多态"<<endl;
	CFigure *figure;
	CTriangle triangle;													//三角形类对象
	CRect rect;													//矩形类对象
	CCircle circle;													//圆形类对象
	figure=&triangle;
	figure->SetDim(8.0,5.0);											//设置三角形的参数
	figure->GetShowArea();												//计算显示三角形的面积
	figure=&rect;
	figure->SetDim(10.0,5.0);											//设置矩形的参数
	figure->GetShowArea();												//计算显示矩形的面积
	figure=&circle;
	figure->SetDim(10.0);											//设置圆形的参数
	figure->GetShowArea();												//计算显示圆形的面积
	return 0;
}

运行结果:

资源:

                 https://download.csdn.net/download/sunjikui1255326447/12089461 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值