首頁 > 後端開發 > C++ > C 中的多態性有哪些不同類型和機制?

C 中的多態性有哪些不同類型和機制?

DDD
發布: 2024-12-17 14:47:15
原創
301 人瀏覽過

What are the Different Types and Mechanisms of Polymorphism in C  ?

了解 C 中的多態性

多態性可讓您編寫可以處理不同類型資料的程式碼,而無需明確指定每種類型。 C 提供了多種實現多態性的機制:

顯式多態性

重載:

void f(int x); // overload for int
void f(double x); // overload for double
登入後複製

範本:

template <typename T>
void f(T& x); // template for any type T
登入後複製

虛擬調度:

struct Base {
    virtual void g() = 0; // pure virtual function
};

struct X : Base {
    virtual void g() { // overrides g() for X
        // ...
    }
};

// ...

void h(Base& b) {
    b.g(); // run-time polymorphic call
}
登入後複製

其他多態性類型

暫時多態性

暫時多態性

當支援的類型數量有限且必須時使用明確指定。

參數化多態性

在通用編寫程式碼而不指定特定類型時使用,使其可以與任何新類型一起使用。

術語與分類進一步分類

  • 作者時序:
  • 運行時多態性: 多態程式碼在執行時解析。

編譯時多態性:多態性程式碼在期間解決

  • 依支援的類型:
  • 暫時多態性: 支援有限數量的指定類型。
  • 參數多態性:支援任何符合特定條件的型別。

子類型多態性:

支援繼承層次結構。

「多態」定義

    在 C 標準中,「 「多態」僅指使用虛擬調度的運行時多態。程式碼的具體需求選擇合適的多型機制。 >與編譯時相比,運行時多態性可能會帶來開銷多態性。 >參數多態性允許程式碼重複使用和抽象,而不需要特定於類型的程式碼。中的多態性可以創建可重複使用的、與類型無關的程式碼,可應用於多種資料類型。 。

以上是C 中的多態性有哪些不同類型和機制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板