虚函数与多态性

实验内容:

定义基类Base,其数据成员为高h,定义成员函数disp()为虚函数,由基类派生出长方体类和圆柱类,并在两个派生类中定义成员函数disp()为虚函数。在主函数中,用基类base定义指针p,用指针p动态调用虚函数disp(),显示面积。

虚函数:它是基类中的成员函数,并在派生类中被重载。

派生类中的虚函数必须与基类中的虚函数完全相同(返回类型,函数名,参数个数,参数类型的顺序)

#include <iostream>
using namespace std;
class Base{
protected:
	double h;
public:
	
	Base(double h1)
	{   h=h1;
	}
	virtual void disp()=0;//纯虚函数
};
class cuboid:public Base{
private:
	double wid,len;
public:
	cuboid(double l,double w,double h1):Base(h1)//
	{    len=l;
	     wid=w;
	}
    
	void disp()//
	{  cout<<"长方体:"<<endl;
	   cout<<"长度:  "<<len<<endl;
	   cout<<"宽度:  "<<wid<<endl;
	   cout<<"高度:  "<<h<<endl;
	   cout<<"长方体的体积:  "<<len*wid*h<<endl;
	}
};
class Cylinder:public Base{
private:
	double r;
public:
	Cylinder(double h1,double r1):Base(h1)//
	{   r=r1;
	}
	void disp()
	{    cout<<"圆柱体:"<<endl;
	     cout<<"高度:  "<<h<<endl;
	     cout<<"半径:  "<<r<<endl;
	     cout<<"圆柱体的体积:  "<<3.1415*r*r*h<<endl;
	}
};
int main()
{   Base *p;
    Cylinder cy(6,5);
	cuboid cu(5,6,8);
	p=&cy;
	p->disp();
	p=&cu;
	p->disp();
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值