亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 父子關系 成員同名 隱藏

    查看全部
    0 采集 收起 來源:[C++]隱藏

    2020-02-25

  • #include <iostream>
    #include <stdlib.h>
    #include <string>
    using namespace std;

    /**
    ?* 定義人類: Person
    ?*/
    class Person
    {
    public:
    ??? Person()
    ?? ?{
    ?? ??? ?cout << "Person" << endl;
    ?? ?}
    ?? ?~Person()
    ?? ?{
    ?? ??? ?cout << "~Person" << endl;
    ?? ?}
    ?? ?void eat()
    ?? ?{
    ?? ??? ?cout << "eat" << endl;
    ?? ?}

    };

    /**
    ?* 定義工人類: Worker
    ?* 虛繼承人類
    ?*/
    class Worker : virtual public Person
    {
    public:
    ?? ?Worker(string name)
    ?? ?{
    ?? ??? ?m_strName = name;
    ?? ??? ?cout << "Worker" << endl;
    ?? ?}
    ?? ?~Worker()
    ?? ?{
    ?? ??? ?cout << "~Worker" << endl;
    ?? ?}
    ?? ?void work()
    ?? ?{
    ?? ??? ?cout << m_strName << endl;
    ?? ??? ?cout << "work" << endl;
    ?? ?}
    protected:
    ?? ?string m_strName;
    };

    /**
    ?* 定義兒童類:Children
    ?* 虛繼承人類
    ?*/
    class Children : virtual public Person
    {
    public:
    ?? ?Children(int age)
    ?? ?{
    ?? ??? ?m_iAge = age;
    ?? ??? ?cout << "Children" << endl;
    ?? ?}?? ?
    ?? ?~Children()
    ?? ?{
    ?? ??? ?cout << "~Children" << endl;
    ?? ?}?? ?
    ?? ?void play()
    ?? ?{
    ?? ??? ?cout << m_iAge << endl;
    ?? ??? ?cout << "play" << endl;
    ?? ?}
    protected:
    ?? ?int m_iAge;
    };

    /**
    ?* 定義童工類:ChildLabourer
    ?* 公有繼承工人類和兒童類
    ?*/
    class ChildLabourer:public Worker,public Children
    {
    public:
    ?? ?ChildLabourer(string name, int age):Worker(name),Children(age)
    ?? ?{
    ?? ??? ?cout << "ChildLabourer" << endl;
    ?? ?}

    ?? ?~ChildLabourer()
    ?? ?{
    ?? ??? ?cout << "~ChildLabourer" << endl;
    ?? ?}?? ?
    };

    int main(void)
    {
    ??? // 用new關鍵字實例化童工類對象
    ?? ?ChildLabourer *p = new ChildLabourer("Jim",13);
    ??? // 調用童工類對象各方法。
    ?? ?p->eat();
    ?? ?p->work();
    ?? ?p->play();
    ?? ?delete p;
    ?? ?p = NULL;

    ?? ?return 0;
    }

    查看全部
    0 采集 收起 來源:鞏固練習

    2020-02-24

  • #include <iostream>
    #include <stdlib.h>
    #include <string>
    using namespace std;

    /**
    ?* 定義工人類: Worker
    ?* 數據成員: m_strName
    ?* 成員函數: work()
    ?*/
    class Worker
    {
    public:
    ??? Worker(string name)
    ?? ?{
    ?? ??? ?m_strName = name;
    ?? ??? ?cout << "Worker" << endl;
    ?? ?}
    ?? ?~Worker()
    ?? ?{
    ?? ??? ?cout << "~Worker" << endl;
    ?? ?}
    ?? ?void work()
    ?? ?{
    ?? ??? ?cout << m_strName << endl;
    ?? ??? ?cout << "work" << endl;
    ?? ?}
    protected:
    ?? ?string m_strName;
    };

    /**
    ?* 定義兒童類: Children
    ?* 數據成員: m_iAge
    ?* 成員函數: play()
    ?*/
    class Children
    {
    public:
    ?? ?Children(int age)
    ?? ?{
    ?? ??? ?m_iAge = age;
    ?? ??? ?cout << "Children" << endl;
    ?? ?}?? ?
    ?? ?~Children()
    ?? ?{
    ?? ??? ?cout << "~Children" << endl;
    ?? ?}?? ?
    ?? ?void play()
    ?? ?{
    ?? ??? ?cout << m_iAge << endl;
    ?? ??? ?cout << "play" << endl;
    ?? ?}
    protected:
    ?? ?int m_iAge;
    };

    /**
    ?* 定義童工類: ChildLabourer
    ?* 公有繼承工人類和兒童類
    ?*/
    class ChildLabourer : public Worker,public Children
    {
    public:
    ?? ?ChildLabourer(string name, int age):Worker(name),Children(age)
    ?? ?{
    ?? ??? ?cout << "ChildLabourer" << endl;
    ?? ?}

    ?? ?~ChildLabourer()
    ?? ?{
    ?? ??? ?cout << "~ChildLabourer" << endl;
    ?? ?}?? ?
    };

    int main(void)
    {
    ??? // 使用new關鍵字創建童工類對象
    ?? ?ChildLabourer *childLabourer = new ChildLabourer("sam",12);
    ??? // 通過童工對象調用父類的work()和play()方法
    ?? ?childLabourer->work();
    ?? ?childLabourer->play();
    ??? // 釋放
    ??? delete childLabourer;
    ??? childLabourer = NULL;

    ?? ?return 0;
    }

    查看全部
    0 采集 收起 來源:鞏固練習

    2020-02-24

  • #include <iostream>
    #include <stdlib.h>
    #include <string>
    using namespace std;

    /**
    ?* 定義人的類: Person
    ?* 數據成員姓名: m_strName
    ?* 成員函數: eat()
    ?*/
    class Person
    {
    public:
    ??? string m_strName;
    ?? ?void eat()
    ?? ?{
    ?? ??? ?cout << "eat" << endl;
    ?? ?}
    };

    /**
    ?* 定義士兵類: Soldier
    ?* 士兵類公有繼承人類: public
    ?* 數據成員編號: m_strCode
    ?* 成員函數: attack()
    ?*/
    class Soldier:public Person
    {
    public:
    ?? ?string m_strCode;
    ?? ?void attack()
    ?? ?{
    ?? ??? ?cout << "fire!!!" << endl;
    ?? ?}

    };

    int main(void)
    {
    ??? // 創建Soldier對象
    ?? ?Soldier soldier;
    ??? // 給對象屬性賦值
    ??? soldier.m_strName = "Jim";
    ?? ?soldier.m_strCode = "592";
    ??? // 打印對象屬性值
    ?? ?cout << soldier.m_strName << endl;
    ?? ?cout << soldier.m_strCode << endl;
    ??? // 調用對象方法
    ?? ?soldier.eat();
    ?? ?soldier.attack();
    ?? ?
    ?? ?return 0;
    }

    查看全部
    0 采集 收起 來源:鞏固練習

    2020-02-24

  • 不同繼承方式下,對于數據成員訪問的情況

    查看全部
    0 采集 收起 來源:[C++]公有繼承

    2020-02-24

  • 保護繼承方式

    查看全部
  • 公有繼承方式

    查看全部
  • 由代碼可知此時頂層父類的參數沒有改變,即頂層父類無法從子類中獲得傳入參數

    查看全部
  • 虛繼承(加上virtual關鍵字)后,Person()構造函數僅執行一次,注意順序

    查看全部
  • 注意構造/析構函數調用順序(普通繼承,非虛繼承)

    查看全部
  • #ifndef
    #define
    ……
    #endif

    宏定義解決重定義類的問題

    查看全部
  • B public繼承 A:

    A public --> B public

    A protected --> B protected

    A private --> B 不可訪問


    B protected繼承 A:

    A public,protected --> B protected

    A private --> B無法訪問


    B private繼承A:

    A public,protected -->B private

    A private --> B無法訪問


    查看全部
    0 采集 收起 來源:[C++]隱藏

    2020-02-18

  • 先調用基類構造函數(按初始化列表順序),再調用子類構造函數

    查看全部
    0 采集 收起 來源:[C++]多繼承

    2020-02-18

  • test1 以對象為參數,會實例化一個對象副本并在函數結束時自動銷毀;

    test2?以引用為參數,不會產生新的對象,只是產生一個引用,因此不會調用構造/析構函數;

    test3?以指針為參數,使用時以&p為參數,結果與test2相同

    查看全部
  • 子類與父類間同名函數只能進行隱藏,不能進行重載!

    查看全部

舉報

0/150
提交
取消
課程須知
本課程是C++初級課程 熟練掌握C++語言基礎語法,如需要學習C++基礎語法的可以看《C++遠征之起航篇》、《C++遠征之離港篇》、《C++遠征之封裝篇(上)》、《C++遠征之封裝篇(下)》
老師告訴你能學到什么?
1、什么是繼承 2、基類和派生類的概念 3、繼承的三種方式 4、多重繼承和多繼承 5、虛繼承是怎么回事

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!