纯虚函数

1.当在基类中不能为虚函数给出一个有意义的实现时,可以将其声明为纯虚函数,其实现留待派生类完成。例如,把多边形作为一个基类可以派生出三角形,正方形等子类,但多边形本身生成对象就不大合理了,这时就可以把多边形的成员函数定义为纯虚函数。

2.含有纯虚函数的类为抽象类,抽象类所包含的函数仅仅是声明,都是没有函数定义的,所以抽象类不能创建对象。

class Polygon
{
public:
	Polygon(){cout<<"Polygon"<<endl;}
	virtual ~Polygon(){cout<<"~Polygon"<<endl;}
	virtual double area() const=0;
};

class Triangle:public Polygon
{
public:
	~Triangle(){cout<<"~Triangle"<<endl;}
	Triangle(double h, double w) {H=h; W=w;}
	double area() const {return H*W*0.5;}
private:
	double H;
	double W;
};

class Rectangle:public Polygon
{
public:
	~Rectangle(){cout<<"~Rectangle"<<endl;}
	Rectangle(double h, double w) {H=h; W=w;}
	double area() const {return H*W;}
private:
	double H;
	double W;
};

void main()
{
	Polygon *p = new Triangle(5.0, 3.5);
	double temp = p->area();
	cout<<temp<<endl;
	delete p;

	p = new Rectangle(5.0, 3.5);
	temp = p->area();
	cout<<temp<<endl;
	delete p;
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值