close

C++的class可以獲得其他類別的member,此方式為「繼承」。


Input: 父親的財產、兒子的財產

Process: 兒子繼承父親的財產

Ouput: 兒子的所有財產

#include <iostream>
using namespace std;

class Father
{
private:
    int Money;

public:
    Father(){
        Money = 0;
    }
    void setfaMoney(int _money)
    {
        Money = _money;
    }

    int getFatherMoney()
    {
        return Money;
    }
};

class Son : public Father /*注意!!繼承的class前面要附加繼承方式,有public、protected、private三種,代表繼承下來的member要採用哪種保護方式(而保護的程度只有越來越嚴謹,不能變寬鬆) */
{
private:
    int Money2;

public:
    Son(){
        Money2 = 0;
    }
    void setsoMoney(int _money)
    {
        Money2 = _money+getFatherMoney();
    }

    int getSonMoney()
    {
        return  Money2;
    }
};


int main()
{
    int papaMoney,sonMoney;
    cin>>papaMoney>>sonMoney;

    Son Child;
    Child.setfaMoney(papaMoney);
    Child.setsoMoney(sonMoney);

    cout<<Child.getSonMoney()<<endl;
    return 0;
}


【多層繼承】

Input: 祖父的財產、父親的財產、兒子的財產

Process: 兒子繼承父親及祖父的財產

Ouput: 兒子的所有財產

#include <iostream>
using namespace std;

class Gfather
{
private:
    int money;
public:
    void setGFaMoney(int tmp_money)
    {
        money = tmp_money;
    }

    int getGFaMoney()
    {
        return money;
    }
};

class Father:public Gfather
{
private:
    int money2;
public:
    void setFaMoney(int tmp_money)
    {
        money2 = tmp_money;
    }

    int getFaMoney()
    {
        return money2;
    }
};

class Son:public Father
{
private:
    int money3;
public:
    void setSonMoney(int tmp_money)
    {
        money3 = tmp_money+getFaMoney()+getGFaMoney();
    }

    int getSonMoney()
    {
        return money3;
    }
};

int main()
{
    int Money1,Money2,Money3;
    cin>>Money1>>Money2>>Money3;

    Son person01;
    person01.setGFaMoney(Money1);
    person01.setFaMoney(Money2);
    person01.setSonMoney(Money3);

    cout<<person01.getSonMoney()<<endl;
    return 0;
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Kuihao 的頭像
    Kuihao

    溫暖午後的金針田__孕育有趣的創新

    Kuihao 發表在 痞客邦 留言(0) 人氣()