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

溫馨提示×

溫馨提示×

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

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

C++類擴展之繼承和組合怎么應用

發布時間:2023-05-05 17:10:38 來源:億速云 閱讀:98 作者:iii 欄目:開發技術

這篇文章主要介紹“C++類擴展之繼承和組合怎么應用”,在日常操作中,相信很多人在C++類擴展之繼承和組合怎么應用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++類擴展之繼承和組合怎么應用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

相關術語

繼承:繼承父類后可以擁有父類對應的屬性和方法。

組合:將類作為成員對象,基類可以直接調用派生類對應的屬性和方法。

一、繼承

繼承是指在一個已有的類的基礎上,創建一個新的類并且使用原有類的功能和屬性。通過繼承,派生類可以獲得基類的全部或部分成員和方法,然后添加新的成員和方法,或者覆蓋部分原有成員和方法。

繼承方式分為公有繼承、私有繼承和保護繼承。

  • 公有繼承:可以繼承基類的公有成員和保護成員,并且派生類對外表現為基類的類型;

  • 私有繼承:只能繼承出基類的公有成員、保護成員、私有成員,并且派生類對外表現為自身類型;

  • 保護繼承:可以繼承保護成員和公有成員。

下面是一個簡單的繼承示例:

class Animal {
public:
    void eat() {
        cout << "Animal eat! " << endl;
    }
};
class Dog : public Animal {
public:
    void bark() {
        cout << "Dog bark! " << endl;
    }
};
int main() {
    Dog dog;
    dog.eat(); // Animal eat!
    dog.bark(); // Dog bark!
    return 0;
}

二、組合

組合是指在類中嵌入對象,從而使組合類可以使用嵌入對象的全部或部分成員和方法。與繼承不同,組合是靜態的,即組合類與嵌入對象之間的關系在編譯時就已經確定,不能在運行時動態改變。

組合可以分為成員變量組合和指針組合兩種。

  • 成員變量組合:指嵌入對象作為組合類的成員;

  • 指針組合:指嵌入對象作為指針成員,需要在組合類的構造函數中動態分配內存。

下面是一個簡單的組合示例:

class Leg {
public:
    void jump() {
        cout << "Leg jump! " << endl;
    }
};
class Animal {
public:
    void eat() {
        cout << "Animal eat! " << endl;
    }
    Leg leg;
};
int main() {
    Animal animal;
    animal.eat();
    animal.leg.jump(); // Leg jump!
    return 0;
}

到此,關于“C++類擴展之繼承和組合怎么應用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

c++
AI

星子县| 天柱县| 镇安县| 义马市| 盖州市| 徐闻县| 上饶市| 木里| 江门市| 盘山县| 余庆县| 凉城县| 遵义县| 五原县| 三明市| 石门县| 全州县| 屏东县| 松桃| 晋城| 新闻| 军事| 师宗县| 西畴县| 铜梁县| 长岛县| 余姚市| 峨山| 泸西县| 贵州省| 乳山市| 塘沽区| 泰安市| 同心县| 金乡县| 濮阳市| 大兴区| 通化市| 沿河| 靖江市| 平罗县|