C++ 纯虚函数的简单实现

纯虚函数的简单实现

纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本
纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分)


  1. 含有纯虚函数的类,称为抽象基类,不可实列化。即不能创建对象,存在的意义就是被继承,提供族类的公共接口。
  2. 纯虚函数只有声明,没有实现,被“初始化”为0。
  3. 如果一个类中声明了纯虚函数,而在派生类中没有对该函数定义,则该虚函数在派生类中仍然为纯虚函数,派生类仍然为纯虚基类。
#include <iostream>
using namespace std;

#define PI 3.1415927

class Figure
{
public:
	virtual void getArea() = 0;
private:

};

class Circle :public Figure
{
public:
	Circle(double r)
	{
		m_r = r;
	}
	virtual void getArea()
	{
		cout << "The cicle's area is: " << PI * m_r * m_r << endl;
	}

private:
	double m_r;
};

class Square :public Figure
{
public:
	Square(int a, int b)
	{
		this->a = a;
		this->b = b;
	}
	virtual void getArea()
	{
		cout << "The Square's area is: " << a * b << endl;
	}

private:
	int a;
	int b;
};

class Triangle :public Figure
{
public:
	Triangle(int a, int b)
	{
		this->a = a;
		this->b = b;
	}
	virtual void getArea()
	{
		cout << "The Triangle's area is: " << a * b / 2.0 << endl;
	}

private:
	int a;
	int b;
};

void ObjPlayer(Figure& base)
{
	base.getArea();
}

int main()
{
	Circle c1(4.5);
	Square s1(7, 8);
	Triangle t1(6, 7);

	ObjPlayer(c1);
	ObjPlayer(s1);
	ObjPlayer(t1);


	return 0;
}

The cicle's area is: 63.6173
The Square's area is: 56
The Triangle's area is: 21
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

banjitino

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

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

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

打赏作者

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

抵扣说明:

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

余额充值