詳細分析C 多型和虛函式

2022-09-28 09:33:09 字數 644 閱讀 2355

多型按字面的意思就是多種形態。當類之間程式設計客棧存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。

c++ 多型意味著呼叫成員函式時,會根據呼叫函式的物件的型別來執行不同的函式。

下面的例項中,基類 shape 被派生為兩個類,如下所示:

#include 程式設計客棧ream>

using namespace std;

class shape

int area()

當上面的**被編譯和執行時,它會產生下列結果:

parent class area

parent class area

導致錯誤輸出的原因是,呼叫函式 area() 被編譯器設定為基類中的版本,這就是所謂的靜態多型,或靜態鏈結 - 函式呼叫在程式執行前就準備好了。有時候這也被稱為早繫結,因為 area() 函式在程式編譯期間就已經設定好了。

但現在,讓我們對程式稍作修改,在 shape 類中,area() 的宣告前放置關鍵字 virtual,如下所示:

cl shape

virtual int area()

// pure virtual function

virtual int area() = 0;

};= 0 告訴編譯器,函式沒有主體,上面的虛函式是純虛函式。

C 陣列 詳細分析

c 陣列 詳細分析 摘自 1 陣列下標 1 在定義時必須明確。只能用正整數或const常量,靜態或全域性變數不可以 例如 const int length 5 int array length 特 在new時可以用變數做下標。例如 int array new int variable 2 在初始化時...

C 陣列 詳細分析

1 陣列下標 1 在定義時必須明確。只能用正整數或const常量,靜態或全域性變數不可以 例如 const int length 5 int array length 特 在new時可以用變數做下標。例如 int array new int variable 2 在初始化時 一維陣列,可略 例如 i...

const詳細分析

最近在分析 linux 驅動的過程過程中遇到一些關於 const 的使用,現在在這裡詳細剖析一下 一,const int p 首先分析一下幾個概念 1 p 是乙個指標變數,因而它也是乙個變數,所謂變數就有變數的位址和變數的值,而這裡 p變數的值就是乙個位址,該位址下存放的是乙個整數,p的值等於這個整...