阿摩線上測驗 登入

申論題資訊

試卷:108年 - 108 專技高考_資訊技師:程式設計#80792
科目:程式設計
年份:108年
排序:0

題組內容

二、C++ 中 的 繼 承 ( inheritance ) 分 為 五 種 , single/ multilevel/ multiple/ hierarchical/ hybrid inheritance。 inheritance

申論題內容

(一)請詳述及解釋,並用下列幾個 並用下列幾個 class 寫出實際 C++ C++程式的例子說明。 (15 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

在 C++ 中,繼承是一種允許我們從另一個類獲得屬性和方法的機制。這是一種建立新類的方式,其中新類將繼承現有類的成員。這有助於代碼重用和建立有層次的類結構。
C++ 支持以下五種繼承:
單一繼承(Single Inheritance):一個子類從單一父類繼承。
多層級繼承(Multilevel Inheritance):一個類從另一個類繼承,而該類又從另一個類繼承。
多重繼承(Multiple Inheritance):一個類同時從多個類繼承。
階層式繼承(Hierarchical Inheritance):多個類從單一類繼承。
混合繼承(Hybrid Inheritance):這是兩種或兩種以上繼承類型的組合。
以下是每種繼承類型的簡單例子:

#include <iostream>
// Single Inheritance
class Base {
public:
    void baseFunction() {
        std::cout << "Base function" << std::endl;
    }
};
class DerivedSingle : public Base {};
// Multilevel Inheritance
class DerivedLevel1 : public Base {};
class DerivedLevel2 : public DerivedLevel1 {};
// Multiple Inheritance
class Base1 {
public:
    void base1Function() {
        std::cout << "Base1 function" << std::endl;
    }
};
class Base2 {
public:
    void base2Function() {
        std::cout << "Base2 function" << std::endl;
    }
};
class DerivedMultiple : public Base1, public Base2 {};
// Hierarchical Inheritance
class DerivedHierarchical1 : public Base {};
class DerivedHierarchical2 : public Base {};
// Hybrid Inheritance (Combination of multiple and hierarchical)
class DerivedHybrid : public DerivedHierarchical1, public Base2 {};
int main() {
    DerivedSingle ds;
    ds.baseFunction(); // Single Inheritance
    DerivedLevel2 dl2;
    dl2.baseFunction(); // Multilevel Inheritance
    DerivedMultiple dm;
    dm.base1Function(); // Multiple Inheritance
    dm.base2Function(); // Multiple Inheritance
    DerivedHierarchical1 dh1;
    DerivedHierarchical2 dh2;
    dh1.baseFunction(); // Hierarchical Inheritance
    dh2.baseFunction(); // Hierarchical Inheritance
    DerivedHybrid dh;
    dh.base1Function(); // Hybrid Inheritance (from DerivedHierarchical1)
    dh.base2Function(); // Hybrid Inheritance (from Base2)
    return 0;
}
在這個例子中:
DerivedSingle 類示範了單一繼承。
DerivedLevel2 類通過 DerivedLevel1 示範了多層級繼承。
DerivedMultiple 類從 Base1 和 Base2 示範了多重繼承。
DerivedHierarchical1 和 DerivedHierarchical2 類從同一個 Base 示範了階層式繼承。
DerivedHybrid 類示範了混合繼承,它通過 DerivedHierarchical1 進行多層級繼承,同時也是多重繼承,因為它還從 Base2 繼承。
每個繼承類型都有其特定用途和應用場景,並可以根據需求來選擇適當的繼承策略。