當父類 Animal 的speak 前面加上 virtual 關鍵字之后,這個speak函數就變成了虛函數,Animal類結構發生了變化, 有了一個vfptr (虛函數指針),指向了vftable(虛函數表), 這個虛函數表里面有函數speak的實際地址, 當子類Cat繼承了這個Animal類之后,Cat類內部結構 也會有 vfptr,也會指向一個vftable,如果Cat類重寫了這個speak這個函數, 那么Cat類的那個 vftable表里面,記錄的 函數地址就是 &Cat::speak的地址了