91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中的多態詳解

發布時間:2020-06-27 19:53:26 來源:網絡 閱讀:6691 作者:龍躍十二 欄目:編程語言

[TOC]
#虛函數和多態

虛函數

定義:類的成員函數前面加virtual關鍵字,則這個成員函數稱為虛函數。

###代碼示例:

class Person
{
public:
    virtual void Buyticket()
    {
        cout << "買票—全價" << endl;
    }
protected:
    char* _name;
};

虛函數重寫

定義:當在子類的定義了一個與父類完全相同的虛函數時,則稱子類的這個函數重寫(也稱覆蓋)了父類的這個虛函數。

代碼示例:

class Person
{
public:
    virtual void Buyticket()
    {
        cout << "買票—全價" << endl;
    }
protected:
    char* _name;
};

class Student : public Person
{
public:
    virtual void Buyticket()
    {
        cout << "買票—半票" << endl;
    }
protected:
    char* _name;
};

##多態
###定義:一個對象呈現多種形態
###代碼示例:

class Person
{
public:
    virtual void Buyticket()
    {
        cout << "買票—全價" << endl;
    }
protected:
    char* _name;
};

class Student : public Person
{
public:
    virtual void Buyticket()
    {
        cout << "買票—半票" << endl;
    }
protected:
    char* _name;
};

void Fun(Person &p)//一個函數實現兩種形態
{
    p.Buyticket();
}

int main()
{
    Person p;
    Student s;
    Fun(p);
    Fun(s);
    system("pause");
    return 0;
}

看看多態的結果:
C++中的多態詳解

多態的的特性:

  1. 派生類重寫基類的虛函數實現多態,要求函數名、參數列表、返回值完全相同。(協變除外)
    1. 基類中定義了虛函數,在派生類中該函數始終保持虛函數的特性。
    2. 只有類的成員函數才能定義為虛函數。
    3. 靜態成員函數不能定義為虛函數。
    4. 如果在類外定義虛函數,只能在聲明函數時加virtual,類外定義函數時不能加virtual。
    5. 構造函數不能為虛函數,雖然可以將operator=定義為虛函數,但是最好不要將operator=定義為虛函數,因為容易使用時容易引
      起混淆。
    6. 不要在構造函數和析構函數里面調用虛函數,在構造函數和析構函數中,對象是不完整的,可能會發生未定義的行為。
    7. 最好把基類的析構函數聲明為虛函數。(why?另外析構函數比較特殊,因為派生類的析構函數跟基類的析構函數名稱不一樣,但
      是構成覆蓋,這里是因為編譯器做了特殊處理)
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

慈利县| 新平| 宁夏| 赤水市| 元阳县| 新密市| 泰顺县| 南郑县| 祁门县| 赫章县| 朝阳市| 宁乡县| 千阳县| 万荣县| 北安市| 无棣县| 太康县| 双牌县| 邓州市| 临邑县| 五河县| 婺源县| 海阳市| 准格尔旗| 南靖县| 海安县| 龙泉市| 灯塔市| 蒲城县| 泰州市| 壶关县| 墨竹工卡县| 黔江区| 辽阳县| 咸宁市| 卓资县| 来凤县| 思茅市| 翁牛特旗| 垦利县| 西昌市|