C++实训(3.2)

请编写一个抽象类shape,在此基础上派生出类Rectangle和Circle,两者都有计算面积的函数GetArea()、计算对象周长的函数GetPerim()。

抽象类

源程序:

#include<iostream>
#define PI 3.1415926;
using namespace std;
class Shape //抽象类bai的 定义
{
public:
virtual double GetArea() = 0; //纯虚函数du
virtual double GetPerim() = 0; //纯虚函数
};
class Rectangle : public Shape //矩形类,公zhi有继承
{
public: Rectangle(double aa, double bb) //带参数的 构造函数
{
a = aa;
b = bb;
cout << "长dao" << a << "宽" << b << endl;
}
virtual double GetArea()
{
return a * b;
}
virtual double GetPerim()
{
return 2* (a + b );
}
private:
double a;
double b;
};
class Circle : public Shape //圆类,公有继承
{
public: Circle(double rr) //带参数的 构造函数
{
r = rr;
cout << "半径" << r << endl;
}
virtual double GetArea()
{
return r * r * PI;
}
virtual double GetPerim()
{
return 2 * r * PI;
}
private:
double r;
};
void main()
{
double length, width;
cout << "输入长和宽: ";
cin >> length >> width;
Rectangle rect(length, width);
cout << "面积是:" << rect.GetArea() << endl << "周长是:" << rect.GetPerim() << endl;
double rr;
cout << "输入半径: ";
cin >> rr;
Circle cir(rr);
cout << "面积是:" << cir.GetArea() << endl << "周长是:" << cir.GetPerim() << endl;
}

运行结果:

原文地址:https://www.cnblogs.com/duanqibo/p/13149904.html