一、虛函式的定義
c++中的虛函式時定義在基類中的函式,子類必須對其進行覆蓋。在類中宣告(無函式體的形式叫做宣告)
虛函式的格式:
virtual void display();
二、虛函式的作用
1.定義子類物件,並且可以呼叫物件中未被子類覆蓋的積累函式a同時在a中,又呼叫了已被子類覆蓋的基類函式b。這樣的話,我們這個時候就會呼叫到基類中的函式b,可我們本來應該呼叫的時子類中的覆蓋函式b。如此,用虛函式就可以辦到,從而解決這個問題。
舉例:沒有用虛函式:
#include
using namespace std;
class father
void fathershowdisplay()
};class son:public father
};int main()
結果:father::display()
使用虛函式:
#include
using namespace std;
class father
void fathershowdisplay()
};class son:public father
};int main()
結果是:song::display()
2.在使用指向子類物件的基類指標並呼叫子類中的覆蓋函式時,如果該函式不是虛函式,那麼就會呼叫基類中的該函式,如果該函式是虛函式,則會呼叫子類中的該函式。
沒有使用虛函式:
#include
using namespace std;
class father
};class son:public father
};int main()
結果是:father::display()
使用虛函式:
#include
using namespace std;
class father
};class son:public father
};int main()
結果是:son::display()
三、總結
虛函式提供了乙個替換的作用,將一般不能實現的呼叫子類物件中的覆蓋函式展示出來,在c++中具有重要的地位。
虛函式與多型知識點總結
虛函式和多型 1 多型性是指乙個名字,多種語義 或介面相同,多種實現。2 虛函式允許函式呼叫與函式體的聯絡在執行時才進行,稱為動態聯編。3 實現執行時多型的關鍵首先是要說明虛函式,另外,必須用類指標呼叫派生類的不同實現版本 4 注意點 乙個虛函式,在派生類層介面相同的過載函式都保持虛特性 虛函式必須...
面試知識點總結 虛繼承
背景 儘管在派生列表中同乙個基類只能出現一次,但實際上派生類可以多次繼承同乙個類。派生類可以通過它的兩個直接基類分別繼承同乙個間接基類,也可以直接繼承某個基類,然後通過另乙個基類再一次間接繼承該類。出現的問題 在預設情況下,派生類中含有繼承鏈上每個類對應的子部分。如果某個類在派生過程中出現了多次,則...
知識點 虛樹
簡介 聽名字高大上,實際上沒什麼東西 虛樹的題主要難在如何操作虛樹 給出 k 個關鍵點,我們要建出一棵只包含這些關鍵點和他們 lca 的點數最少的樹,以實現 dp 等操作。標誌性的資料範圍是 sum leq 10 之類的。建樹方法 1.將所有關鍵點按 dfs 序排序。2.開乙個棧表示根到當前點的虛樹...