【说明】 以下程序的功能是计算正方体、球体和圆柱体的表面积和体积并输出。 程序由4个类组成:类cube、sphere和cylinder分别表示正方体、球体和圆柱体;抽象类 container为抽象类,提供了两个纯虚拟函数surface_area()和volum(),作为通用接口。 【C++程序】 #include<iostream.h> #define pi 3.1416 class container{ protected: double radius; public: container(double radius) {container::radius=radius;} virtual double surface_area()=0; virtual double velum()=0; }; class cube: (1) { //定义正方体类 public: cube(double radius):container(radius){}; double surface_area () {return 6 * radius * radius;} double volum() {return radius * radius * radius;} }; class sphere: (2) { //定义球体类 public: sphere(double radius): container(radius){}; double surface_area() { return (3) ;} double volum() {return pi * radius * radius * radius * 4/3;} }; class cylinder: (4) {//定义圆柱体类 double height; public: cylinder(double radius,double height):container(radius) { container::height=height; } double surface_are a () { return 2 * pi * radius * (height+radius); } double volum () {return (5) ;} }; void main() { container * p; cube obj1 (5); sphere obj2(5); cylinder obj3(5,5); p=&obj1; cout<<“正方体表面积”(<<p->surface_area()<<end1; cont<<“正方体体积”<<p->volume()<<end1; p=&obj2; cout<<“球体表面积”<<p->surface_area()<<end1; cout<<“球体体积”<<p->volume()<<end1; p=&obj3; cout<<“球体表面积”<<p->surface_area()<<end1; cout<<“球体体积”<<p->volume()<<end1; }
参考答案:public container (2)public container
解析:(3) 4 * pi * radius * radius (4) public container (5)pi * radius * radius * height 类cube、sphere和cylinder分别表示正方体、球体和圆柱体,它们都需要求各自的表面积和体积,而抽象类container提供纯虚拟函数 surface_area()和velum(),所以类cube、sphere和cylinder都以类contain为基类,公有继承,所以(1)、(2)和(4)空应填入“public container”。 (3)空处为类sphere中求表面积函数的返回值,所以根据球体表面积公式应填入“4*pi*radius*radius”。 (5)空处为类cylinder中求圆柱体体积函数的返回值,所以根据圆柱体体积公式应填入“pi*radius*radius*height”。