c++练习题---Shape抽象类

6-1 Shape抽象类 (30分)

已知抽象类类Shape定义如下,其中两个纯虚函数分别为计算面积getArea()和计算周长getPerim()。请通过Shape类派生出矩形类Rectangle和圆类Circle,计算各自的面积和周长,并能够按照main函数给出的测试代码完成给定的输入。

Shape类定义及测试程序如下:

#include 
using namespace std;
const double PI=3.14;
class Shape {
public:
	virtual double getArea()=0;
	virtual double getPerim()=0;
};

/*请在这里输入你的代码*/

int main(){
	double r,l,w;
	cin>>r;
	cin>>l>>w;
	Shape *p=NULL;
	p=new Circle(r);
	print(p);//输出圆面积与周长
	p=new Rectangle(l,w);
	print(p);//输出矩形面积与周长
	return 0;	
}

输入样例:

1 2 3

输出样例:

Area:3.14
Perimeter:6.28
Area:6
Perimeter:10

 代码实例:

class Circle:public Shape
{
	private:
		double r;
	public:
		Circle(double r_):r(r_)
		{
			
		}
	 double getArea(){
	 	return 3.14*r*r;
	 }
	 double getPerim(){
	 	return 2*3.14*r;
	 }
 }; 
class Rectangle:public Shape//基本上的继承,析构函数,虚构函数 
{
	private:
		double a,b;
	public:
		Rectangle(double a_,double b_):a(a_),b(b_)
		{
			
		}
		double getArea()
		{
			return a*b;
		}
		double getPerim()
		{
			return 2*(a+b);
		}
};
void print(Shape *p)//print不是类的成员函数,算是一个全局函数,这里注意 
{
	cout<<"Area:"<getArea()<getPerim()<

 

你可能感兴趣的:(c++练习题---Shape抽象类)