C 多型性 一

2021-08-08 14:49:30 字數 1003 閱讀 6862

概念

多型性可以簡單的概括為「乙個介面,多種方法」,程式在執行時才決定呼叫的函式,它是物件導向程式設計領域的核心概念。

實現方法

c++多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法稱為覆蓋,或者稱為重寫(重寫成員函式和重寫虛函式,只有重寫虛函式才能體現c++多型性)。

多型的作用

封裝可以使得**模組化,繼承可以擴充套件已存在的**,而多型的目的是為了介面重用。也就是說,不論傳遞過來的究竟是哪個類的物件,函式都能夠通過同乙個介面呼叫到適應各自物件的實現方法。

多型的常見用法

宣告基類的指標,利用該指標指向任意乙個派生類物件,呼叫相應的虛函式,可以根據指向的子類的不同而實現不同的方法。

如果沒有使用虛函式的話,即沒有利用c++多型性,在利用基類指標呼叫相應的函式的時候,將總被限制在基類函式本身,而無法呼叫到子類中被重寫過的函式。因為沒有多型性,函式呼叫的位址將是一定的,而固定的位址將始終呼叫到同乙個函式,這就無法實現「乙個介面,多種方法」的目的了。

多型和非多型區別

函式位址是早繫結還是晚繫結。

早繫結:如果函式的呼叫在編譯器編譯期間就可以確定函式的呼叫位址,並生產**,則屬於靜態的,屬於早繫結。

晚繫結:如果函式的呼叫位址不能在編譯期間確定,需要在執行時才確定,就屬於晚繫結。

例子

#include 

using

namespace

std;

class base1;

void base1::display() const

class base2 :public base1 ;

void base2::display() const

class derived :public base2 ;

void derived::display() const

void fun(base1 *ptr)

void main()

C 的多型性

c 的多型性 1.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...

有關C 多型性

c 多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法稱為覆蓋 override 或者稱為重寫。這裡我覺得要補充,重寫的話可以有兩種,直接重寫成員函式和重寫虛函式,只有重寫了虛函式的才能算作是體現了c 多型性 而過載則是允許有多個同名的函式,而這些函式的引數列表不同...

C 的多型性

type text css rel stylesheet href 是允許將父物件設定成為和乙個或多個它的子物件相等的技術,比如parent child 多型性使得能夠利用同一類 基類 型別的指標來引用不同類的物件,以及根據所引用物件的不同,以不同的方式執行相同的操作.c 中多型更容易理解的概念為允...