虛函式與虛表

2021-08-02 09:33:26 字數 823 閱讀 4256

虛函式作用:c++中的多型,進行動態繫結(父類指標可指向子類的物件),直到執行時才知道要具體呼叫哪個版本(哪個類定義)的函式;

它是通過虛表實現的,簡單理解如下:

**分析:

#include

using namespace std;

class base

virtual void g()

virtual void h() };

int main()

結果截圖:

二、用虛函式實現多型。

**:

class base

virtual void g()

virtual void h() };

class derive:public base ;

int main()

結果截圖:

總結:1、一旦父類的成員函式宣告virtual,其子類的函式不管有沒有宣告為virtual,都是虛函式;

2、虛表順序:先基類後派生類,如果派生類有同名的函式,則取代虛表中基類的函式位置;

3、基類指標指向派生類物件,如果呼叫的函式是虛函式,則調動的是派生類的方法。

三、純虛函式

class base//抽象類 ;

class drive:public base

}; int main()

多型與虛函式(虛表)

前面我們已經說過繼承,今天我們來說說多型,多型是什麼呢?我們可以從以下幾個方面來看多型。1 什麼是多型?2 多型的分類?3 動態多型實現的條件?4 多型實現原理?現在我們就要進入正文了!1 什麼是多型?多型 同一事物,在不同場景下可表現出不同的形態。例如 1.的多種意思 a b 此時 就是乘號的意思...

C 虛函式與虛表

子類重新定義父類的函式重寫,但是只有父類函式宣告為虛函式的時候,才可以通過下面這種指標的方式進行呼叫,否則只能是呼叫父類的函式 include class base virtual void rewrite class derived public base void rewrite overrid...

虛函式,虛表,虛表指標

分享一篇文章,詳細解釋了為什麼通過基類指標指向基類物件或派生類物件,就可以呼叫相應類的虛函式。自 一 概述 為了實現c 的多型,c 使用了一種動態繫結的技術。這個技術的核心是虛函式表 下文簡稱虛表 本文介紹虛函式表是如何實現動態繫結的。二 類的虛表 每個包含了虛函式的類都包含乙個虛表。我們知道,當乙...