多型按字面的意思就是多種形態。當類之間程式設計客棧存在層次結構,並且類之間是通過繼承關聯時,就會用到多型。
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的值等於這個整...