C++类的多态:虚函数

本篇介绍C++类的多态性,当类之间存在继承关系时,调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。

/*
* Author:W;
* 类的多态:virtual虚函数:调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。
*/

//引入头文件:头文件包含了程序中必需的或有用的信息
#include <iostream>
using namespace std;

/*基类:形状*/
class Shape
{
public:
	//构造函数
	Shape(float wid, float hei)
	{
		width = wid;
		height = hei;
	}
	
	//虚函数
	//virtual float getArea(){}
	//(纯)虚函数:计算形状面积 
	virtual float getArea() = 0;

protected:
	float width;
	float height;
};

/*正方形*/
class Rectangle : public Shape 
{
public:
	Rectangle(float wid, float hei) :Shape(wid, hei) {}

	//覆写面积计算
	float getArea()
	{
		cout << "正方形的面积 S = " << width * height << endl;

		return width * height;
	}
};

/*三角形*/
class Triangle : public Shape
{
public:
	Triangle(float wid, float hei) :Shape(wid, hei) {}

	//覆写面积计算
	float getArea()
	{
		cout << "三角形的面积 S = " << (width * height) / 2 << endl;
		return (width * height)/2;
	}
};




//main程序执行入口函数
int main()
{	
	Shape* shape = NULL;
	Triangle triangle(3,5);
	Rectangle rectAngle(4, 7);

	//指向三角形对象地址
	shape = &triangle;
	shape->getArea();

	//指向正方形对象地址
	shape = &rectAngle;
	shape->getArea();

}




运行结果如下:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值