多态性与虚函数2

实验内容:建立3个继承类container的派生类cube,sphere,cylinder,让每个派生类都包含虚函数surface-area()和volume(),分别计算正方体,球体,圆柱体的体积和表面积;应用c++的多态性

实验体会;error C2144: syntax error : missing ')' before type 'double'

cylinder(double h,double d):container( double d);应该把最后一个double去掉;


#include <iostream>
using namespace std;
class container{
protected:
	double a;
public:
	virtual double surface_area()=0;
	virtual double volume()=0;
	container(double a1)
	{   a=a1;
	}
};
class cube:public container{
public:
	cube(double b):container(b)//
	{ }
	double surface_area()
	{   return 6*a*a;
	}
	double volume()
	{   return a*a*a;
	}
};
class sphere:public container{
public:
	sphere(double c):container( c)//
	{  };
    double surface_area()
	{   return 4*3.1416*a*a;
	}
	double volume()
	{   return 3.1416*a*a*a*4/3;
	}
};
class cylinder:public container{
private:
	double height;
public:
 	cylinder(double h,double d):container( d)//
	{   height=h;
	}
     double surface_area()
	 {   return 2*3.1416*a*(a+height);
	 }
	double volume()
	{   return 3.1416*a*a*height;
	}
};
int main()
{   container *p;
    cube c(5.0);
	sphere s(5.0);
	cylinder cy(6.0,5.0);
	p=&c;
	cout<<"这个正方体的表面积和体积分别为:  "<<p->surface_area()<<"  "<<p->volume()<<endl;
	p=&s;
	cout<<"这个球体的表面积和体积分别为:  "<<p->surface_area()<<"  "<<p->volume()<<endl;
	p=&cy;
    cout<<"这个圆柱体的表面积和体积分别为:  "<<p->surface_area()<<"  "<<p->volume()<<endl;
	return 0;
}
 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值