virtual-虛函式
下面是對c++的虛函式這玩意兒的理解。
一,什麼是虛函式(如果不知道虛函式為何物,但有急切的想知道,那你就應該從這裡開始)
簡單地說,那些被virtual關鍵字修飾的成員函式,就是虛函式。虛函式的作用,用專業術語來解釋就是實現多型性(polymorphism),多型性是將介面與實現進行分離;用形象的語言來解釋就是實現以共同的方法,但因個體差異而採用不同的策略。下面來看一段簡單的**
class a{
public:
void print(){ cout<<」this is a」<
int main(){ //main2
最後的說明:本文的**可以用vc6和dev-c++4.9.8.0通過編譯,且執行無問題。其他的編譯器小弟不敢保證。其中,裡面的模擬方法只能看成模型,因為不同的編譯器的低層實現是不同的。例如this指標,dev-c++的gcc就是通過壓棧,當作引數傳遞,而vc的編譯器則通過取出位址儲存在ecx中。所以這些模擬方法不能當作具體實現
虛函式(virtual)
上面提到動態多型主要通過虛函式機制實現,這裡介紹以下虛函式。和普通的函式宣告方式相同,只要在函式的返回值前加上virtual關鍵字,該函式就為虛函式,即virtual 函式型別 函式名 形式引數 虛函式的作用 允許通過基類的指標或引用來訪問基類和派生類的同名函式。include using name...
關於virtual虛函式
1.如果父類定義的是普通virtual函式,1 父類必須提供乙個實現 2 子類如果不需要實現它,可以不在函式成員中列出來,或者類檔案中列出來,不提供實現也可以 子類如果要實現它,則必須在函式成員中列出來 2.如果父類定義的是純virtual函式 1 如果子類仍是個抽象類,可以不宣告它 2 如果子類不...
virtual 虛函式補充
class base private int ma class derived public base intmain 這裡分析一下p show 的反彙編 p show 將p的裡面存的值放到eax暫存器,這裡是derived物件的位址 00864b1d mov eax,dword ptr p 將ea...