定义一个Shape抽象类,定义求面积、周长的纯虚函数,由它派生出圆形类(Circle)和矩形类(Rectangle),各自定义自己的面积和周长函数。在主函数可通过派生类对象调用相应的成员函数,以及思考如何实现多态,观察运行结
#include<iostream>
using namespace std;
class Shape
{
public:
virtual double area() = 0;
virtual double perimeter() = 0;
};
class Circle :public Shape
{
private:
double r;
public:
Circle(double _r) :r(_r) {}
double area()
{
return 3.14 * sqrt(r);
}
double perimeter()
{
return 2 * 3.14 * r;
}
};
class Rectangle : public Shape
{
private:
double a, b;
public:
Rectangle(double _a, double _b) :a(_a), b(_b) {}
double area()
{
return a * b;
}
double perimeter()
{
return 2 * (a + b);
}
};
void display(Shape* p)
{
cout << "area:" << p->area() << endl << "perimeter:" << p->perimeter() << endl;
}
int main()
{
double r, l, w;
cin >> r;
cin >> l >> w;
Shape* p = NULL;
p = new Circle(r);
display(p);
p = new Rectangle(l, w);
display(p);
return 0;
}
果。