定義基類shape,它有默認的構造函數和析構函數;
把點point類聲明爲shape的派生類,它包含兩個數據成員x和y 和輸出函數display();
把圓circle定義爲點point類的派生類,它在點point的基礎上增加一個數據成員radius;
並增加輸出成員函數 display ()和求面積成員函數area()。
#include<iostream>
#include<cmath>
using namespace std;
#define PI 3.1415926
class shape
{
};
class point:public shape
{
public:
double x, y;
point(double xx, double yy)
{
x = xx;
y = yy;
}
void display()
{
cout << "(" << x << "," << y << ")" << endl;
}
};
class circle:public point
{
private:
double radius;
public:
circle(double xx, double yy, double rad):point(x, y)
{
x = xx;
y = yy;
radius = rad;
}
void show()
{
cout << "圓心爲" << "(" << x << "," << y << ")," << "半徑爲" << radius << "的圓" << endl;
}
double area()
{
double ans = PI * radius * radius;
return ans;
}
};
int main()
{
point p1(2.7, 4.6);
point p2(2, 8);
p1.display();
p2.display();
circle c1(0,0,1);
circle c2(2.7, 4.6, 3.5);
c1.show();
c2.show();
cout << c1.area() << endl;
cout << c2.area() << endl;
return 0;
}
輸出結果: