6.14给出抽象基类建立派生类计算正方体,球体,圆柱体的表面积及体积
2015-06-29 21:34
459 查看
#include<iostream>
using namespace std;
class container{
protected:
double radius;
public:
container(double r)
{radius=r;
}
virtual double surface_area()=0;
virtual double volume()=0;
};
class cube:public container{
public:
cube(double r):container(r)
{ };
double surface_area()
{cout<<"这个正方体的表面积为:"<<6*radius*radius<<endl;
}
double volume()
{cout<<"这个正方体的体积为:"<<radius*radius*radius<<endl;
}
};
class sphere:public container{
public:
sphere(double r):container(r){
};
double surface_area()
{cout<<"这个球体的表面积为:"<<4*3.14*radius*radius<<endl;
}
double volume()
{cout<<"这个球的体积为:"<<4/3*3.14*radius*radius*radius<<endl;
}
};
class cyclinder:public container{
public:
cyclinder(double r,double h):container(r){
high=h;
}
double surface_area()
{cout<<"这个圆柱体的表面积为:"<<2*3.14*radius*radius+3.14*radius*high<<endl;
}
double volume()
{cout<<"这个圆柱体的体积为:"<<3.14*radius*radius*high<<endl;
}
protected:
double high;
};
int main()
{
container *p;
cube obj1(6.0);
sphere obj2(5.0);
cyclinder obj3(6.0,5.0);
p=&obj1;
p->surface_area();
p->volume();
p=&obj2;
p->surface_area();
p->volume();
p=&obj3;
p->surface_area();
p->volume();
return 0;
}
using namespace std;
class container{
protected:
double radius;
public:
container(double r)
{radius=r;
}
virtual double surface_area()=0;
virtual double volume()=0;
};
class cube:public container{
public:
cube(double r):container(r)
{ };
double surface_area()
{cout<<"这个正方体的表面积为:"<<6*radius*radius<<endl;
}
double volume()
{cout<<"这个正方体的体积为:"<<radius*radius*radius<<endl;
}
};
class sphere:public container{
public:
sphere(double r):container(r){
};
double surface_area()
{cout<<"这个球体的表面积为:"<<4*3.14*radius*radius<<endl;
}
double volume()
{cout<<"这个球的体积为:"<<4/3*3.14*radius*radius*radius<<endl;
}
};
class cyclinder:public container{
public:
cyclinder(double r,double h):container(r){
high=h;
}
double surface_area()
{cout<<"这个圆柱体的表面积为:"<<2*3.14*radius*radius+3.14*radius*high<<endl;
}
double volume()
{cout<<"这个圆柱体的体积为:"<<3.14*radius*radius*high<<endl;
}
protected:
double high;
};
int main()
{
container *p;
cube obj1(6.0);
sphere obj2(5.0);
cyclinder obj3(6.0,5.0);
p=&obj1;
p->surface_area();
p->volume();
p=&obj2;
p->surface_area();
p->volume();
p=&obj3;
p->surface_area();
p->volume();
return 0;
}
相关文章推荐
- WPF——执行命令清空文本框
- 六月英语总结
- cocos之Shader
- SAX读取xml文件的方法总结
- 继承,抽象类,接口,多态
- 【c语言】判断一个数是奇偶数
- JSP(二)
- Linux性能分析top iostat vmstat free
- 继承,设计模式,final
- 面试题14:调整数组顺序是奇数位于偶数前面
- 【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数
- 测试wifi覆盖范围的软件
- oracle存储过程基本语法
- ==和equals的区别
- 第16周周五:数据库连接 与 随机数的使用
- bzoj 1004 分类: bzoj 2015...
- 收集的maven 仓库地址(maven repository)
- Android Studio导入project慢的原因
- 【c语言】写一个宏定义,实现的功能是将一个int型的数的奇偶位互换
- Min Stack(返回栈中最小数)