虛函數(shù)表存在什么位置 虛函數(shù)調(diào)用為什么不能在編譯時(shí)確定?
虛函數(shù)調(diào)用為什么不能在編譯時(shí)確定?在編譯時(shí),編譯器不知道用戶選擇哪種類型的對(duì)象。當(dāng)一個(gè)函數(shù)被聲明為虛擬函數(shù)時(shí),編譯器會(huì)創(chuàng)建一個(gè)虛擬函數(shù)表來(lái)存儲(chǔ)虛擬函數(shù)的地址。當(dāng)在運(yùn)行時(shí)通過(guò)基類指針調(diào)用虛函數(shù)時(shí),編譯器
虛函數(shù)調(diào)用為什么不能在編譯時(shí)確定?
在編譯時(shí),編譯器不知道用戶選擇哪種類型的對(duì)象。當(dāng)一個(gè)函數(shù)被聲明為虛擬函數(shù)時(shí),編譯器會(huì)創(chuàng)建一個(gè)虛擬函數(shù)表來(lái)存儲(chǔ)虛擬函數(shù)的地址。當(dāng)在運(yùn)行時(shí)通過(guò)基類指針調(diào)用虛函數(shù)時(shí),編譯器靜態(tài)地插入虛函數(shù)指針,并在虛函數(shù)表中找到確切函數(shù)版本的正值