1.多型相關概念及使用時需要注意問題。
c++中類的繼承中有多型性的概念,所謂的多型就是在類裡使用虛函式後,用父類作為物件指標,來正確的呼叫不同子類或父類來作為相應虛函式。虛基類實際就是繼承時使用virtual關鍵字來定義,為的是讓在多重繼承時遇到相同的基類時只保留乙份,以確定其使用那個類。
2.多型原理。
當使用基類的指標或引用呼叫重寫的虛函式時,當指向父類呼叫的就是父類的虛函式,指向子類呼叫的就是子類的虛函式
3.什麼是動態聯編,什麼靜態兩邊。
動態聯編 和 靜態聯編 都是多型性的一種體現
聯編是指乙個電腦程式自身彼此關聯的過程,在這個聯編過程中,需要確定程式中的操作呼叫(函式呼叫)與執行該操作(函式)的**段之間的對映關係;按照聯編所進行的階段不同,可分為靜態聯編和動態聯編;
靜態聯編
:是指聯編工作是在
程式編譯連線階段
進行的,這種聯編又稱為早期聯編;因為這種聯編是在程式開始執行之前完成的;
在程式編譯階段進行的這種聯編又稱靜態束定;在編譯時就解決了程式中的操作呼叫與執行該操作**間的關係,確定這種關係又被稱為束定;編譯時束定又稱為靜態束定;
動態聯編
:編譯程式在編譯階段並不能確切地知道將要呼叫的函式,只有在程式執行時才能確定將要呼叫的函式,為此要確切地知道將要呼叫的函式,要求聯編工作在程式執行時進行,這種在
程式執行時進行的聯編
工作被稱為動態聯編,或動態束定,又叫晚期聯編;c++規定:動態聯編是在虛函式的支援下實現的;
4.單繼承/多繼承/菱形繼承/菱形虛擬繼承。多型場景下物件模型
class a
cout<<"------------------------------------\n";
} void test()
int main()
{ test();
return 0;
多型 多型物件模型
1 什麼多型?當使用基類的指標或引用呼叫重寫的虛函式時,指向父類調的就是父類的虛函式,指向子類調的就是子類的虛函式。下面我們來看一段 sizeof aa 的結果為什麼會是8呢?這是因為函式fun1是乙個虛函式,函式內部存在乙個虛表指標。單繼承物件模型 由於編譯器做了一定的優化,子類中自己定義的函式在...
多型 多型物件模型
一 什麼是多型。物件導向語言有三大特點,封裝 繼承 多型。今天就討論一下多型,多型是 當使用基類的指標或引用呼叫重寫的虛函式時,當指向父類呼叫的就是父類的虛函式,當指向子類就是呼叫子類的虛函式。多型 多種形態。多型分為靜態多型和動態多型。實現多型的其中乙個條件必須是要把子類給給父類,要構成is a的...
多型 多型物件模型
理解多型 所謂多型,其實就是多種 形態 c 中虛函式的主要作用就是實現多型,簡單說父類的指標 引用呼叫重寫的虛函式,當父類指標 引用指向父類物件時呼叫的是父類的虛函式,指向子類物件時呼叫的是子類的虛函式。類別 1 編譯時的多型性。編譯時的多型性是通過過載來實現的。對於非虛的成員來說,系統在編譯時,根...