写一个基类Shape,再写两个派生类:rect,circle,要求基类和派生类除了有各自的构造函数以外,还有求面积的成员函数。主函数中定义不同的派生类对象,求不同对象的面积。
代码:
#include <iostream>
#include <stdlib.h>
using namespace std;
const double PI = 3.1415926;
class Shape
{
public:
Shape(int m = 0, int n = 0)
{
a = m;
b = n;
}
virtual float GetArea() = 0;
protected:
int a, b;
};
class Rect :public Shape
{
public:
Rect(int m, int n);
float GetArea();
protected:
};
Rect::Rect(int m, int n) :Shape(m, n)
{
}
float Rect::GetArea()
{
return (a * b);
}
class Circle:public Shape
{
public:
Circle(int r);
float GetArea();
protected:
};
Circle::Circle(int r) :Shape(r)
{
}
float Circle::GetArea()
{
return (PI * a * a);
}
void main()
{
Rect rect(4, 5);
Circle circle(10);
Shape* p;
p = ▭
cout << "矩形的面积为:" << endl;
cout << p->GetArea() << endl;
p = &circle;
cout << "圆的面积为:" << endl;
cout << p->GetArea() << endl;
system("pause");
}
调式结果: