编号及代码:
/*
*Copyright(c)2015,烟台大学计算机与工程学院
*All rights reserved;
*文件名称:score.cpp
*作者:范星月
*完成日期:2015年6月1日
*版本号:v1.0
*
*问题描述:
*问题输入:设计一个抽象类,含有用于求表面积和体积的两个纯虚函数,设计派生类CCube,CBall,CCylinder,分别表示正方体,球体积圆柱体,在测试函数中定义指向基类的指针P,要求利用这个P指针,能够求出正方体,球体,圆柱体对象的表面积和体积
*问题输出:
*/
#include <iostream>
using namespace std;
class CSolid
{
public:
virtual void area()=0;
virtual void volume()=0;
};
class CCube:public CSolid
{
public:
CCube(double a1):a(a1){}
void area()
{
cout<< 6*a*a<<endl;
}
void volume()
{
cout<< a*a*a<<endl;
}
private:
double a;
};
class CBall:public CSolid
{
public:
CBall(double r):radius(r){}
void area()
{
cout<< 4*3.14*radius*radius<<endl;
}
void volume()
{
cout<< 4/3*3.14*radius*radius*radius<<endl;
}
private:
double radius;
};
class CCylinder:public CSolid
{
public:
CCylinder(double r,double h):radius(r),height(h){}
void area()
{
cout<< 2*3.14*radius*radius+2*3.14*radius*height<<endl;
}
void volume()
{
cout<< 3.14*radius*radius*height<<endl;
}
private:
double radius,height;
};
int main()
{
CSolid *p;
CCube c1(2.0);
p=&c1;
p->area();
p->volume();
CBall r1(1.0);
p=&r1;
p->area();
p->volume();
CCylinder y1(2.0,1.0);
p=&y1;
p->area();
p->volume();
return 0;
}
第12周项目3立体类族共有的抽象类
最新推荐文章于 2026-03-10 01:57:53 发布
本文通过设计抽象类及包含求表面积和体积的纯虚函数,演示了如何使用派生类(如正方体、球体和圆柱体)来实现这些功能。文章展示了如何通过指向基类的指针调用不同派生类的方法。

5308

被折叠的 条评论
为什么被折叠?



