exam4.cpp

来自「C++语言程序设计题典」· C++ 代码 · 共 74 行

CPP
74
字号
#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 + =
减小字号Ctrl + -
显示快捷键?