1. 程式人生 > >C++中純虛擬函式的實現原理是什麼,為什麼該純虛擬函式不能例項化?

C++中純虛擬函式的實現原理是什麼,為什麼該純虛擬函式不能例項化?

虛擬函式的原理採用 vtable。
類中含有純虛擬函式時,其vtable 不完全,有個空位。
即“純虛擬函式在類的vftable表中對應的表項被賦值為0。也就是指向一個不存在的函式。由於編譯器絕對不允許有呼叫一個不存在的函式的可能,所以該類不能生成物件。在它的派生類中,除非重寫此函式,否則也不能生成物件。”
所以純虛擬函式不能例項化。