逆向之虛函數執行分析

逆向之虛函數執行分析

同名函數調用

  • 函數重複定義:

  在C++中,同一類中是不能定義兩個名字相同、參數個數和類型都相同的函數的,否則就是“重複定義”

  • 不同層次的函數調用:

  在類的繼承層次結構中在不同的層次中可以出現名字相同、參數個數和類型都相同而功能不同的函數。編譯系統按照同名覆蓋的原則決定調用的對象。

虛函數

  • 虛函數的定義:

  虛函數的作用是允許在派生類中重新定義與基類同名的函數,並且可以通過基類指針或引用來訪問基類和派生類中的同名函數。

  • 虛函數調用:

  在程序中不是通過不同的對象名去調用不同派生層次中的同名函數,而是通過指針調用它們。例如,用同一個語句“pt>display();”可以調用不同派生層次中的display函數,只需在調用前給指針變量pt賦以不同的值(使之指向不同的類對象)即可。

  • 虛函數的優勢:

  實現多態。

虛函數的調用方法

(1)指針

(2)引用

(3) 對象

 

 代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章