面向對象程序設計——派生類構造函數

定義基類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;
}

輸出結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章