2020-12-16(虚析构函数,神逻辑代码)
生活随笔
收集整理的這篇文章主要介紹了
2020-12-16(虚析构函数,神逻辑代码)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
下面這串代碼從匯編角度分析的話,大家等幾天,我看看,我目前只能從c++層面來解釋
抓住一點(diǎn)(在多態(tài)調(diào)用非自身構(gòu)造函數(shù)和析構(gòu)函數(shù)時(shí)都會進(jìn)行虛表替換)
下面是執(zhí)行的結(jié)果,最主要需要注意的是就是第一次為什么輸出是CPerson,不是CChinese,因?yàn)樵跇?gòu)造函數(shù)里面調(diào)用的時(shí)候已經(jīng)把虛表給換了,被換成父類的虛表了,往下調(diào)用GetClassName時(shí),這個(gè)對象的虛表已經(jīng)是父類虛表了,所以這時(shí)只能在父類里面調(diào)用,調(diào)用函數(shù)的對象的自身虛表已經(jīng)找不到了,它沒辦法多態(tài)了,從c++層面分析時(shí)注意這點(diǎn)就行,其它的都類似。
總結(jié)
以上是生活随笔為你收集整理的2020-12-16(虚析构函数,神逻辑代码)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 返回对象2(调用了拷贝构造函数)
- 下一篇: 2020-12-18(何种情况下编译器会