📄 exam4.cpp
字号:
#include <iostream.h>
class container //抽象类
{
protected:
double radius;
public:
container(double radius)
{
container::radius=radius;
}
virtual double surface_area()=0; //纯虚函数
virtual double volume()=0; //纯虚函数
};
class cube:public container //定义正方体类
{
public:
cube(double radius):container(radius) {};
double surface_area()
{
return radius*radius*6;
}
double volume()
{
return radius*radius*radius;
}
};
class sphere:public container //定义球体类
{
public:
sphere(double radius):container(radius) {};
double surface_area()
{
return 4*3.1416*radius*radius;
}
double volume()
{
return 3.1416*radius*radius*radius*4/3;
}
};
class cylinder:public container //定义圆柱体类
{
double height;
public:
cylinder(double radius,double height):container(radius)
{
cylinder::height=height;
}
double surface_area()
{
return 2*3.1416*radius*(height+radius);
}
double volume()
{
return 3.1416*radius*radius*height;
}
};
void main()
{
container *p; //定义抽象类指针p
cube obj1(10); //创建正方体对象obj1
sphere obj2(6); //创建球体对象obj2
cylinder obj3(4,5); //创建圆柱体对象obj3
p=&obj1; //指针p指向正方体对象obj1
cout << "输出结果:" << endl;
cout << " 正方体表面积:" << p->surface_area() << endl;
cout << " 正方体体积:" << p->volume() << endl;
p=&obj2; //指针p指向球体对象obj2
cout << " 球体表面积:" << p->surface_area() << endl;
cout << " 球体体积:" << p->volume() << endl;
p=&obj3; //指针p指向圆柱体对象obj3
cout << " 圆柱体表面积:" << p->surface_area() << endl;
cout << " 圆柱体体积:" << p->volume() << endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -