類普通成員函數(shù)怎么調(diào)用?
為什么成員數(shù)據(jù)有內(nèi)存存放,虛成員函數(shù)能通過(guò)虛函數(shù)指針=》虛函數(shù)表找到 普通成員函數(shù)至少有函數(shù)指針吧 不然怎么找到實(shí)現(xiàn)呢?如果有為什么對(duì)象大小只有數(shù)據(jù)成員的大小 奇怪
為什么成員數(shù)據(jù)有內(nèi)存存放,虛成員函數(shù)能通過(guò)虛函數(shù)指針=》虛函數(shù)表找到 普通成員函數(shù)至少有函數(shù)指針吧 不然怎么找到實(shí)現(xiàn)呢?如果有為什么對(duì)象大小只有數(shù)據(jù)成員的大小 奇怪
2017-02-12
舉報(bào)
2017-02-13
因?yàn)?,?nèi)存中有程序代碼區(qū),堆區(qū),棧區(qū),全局區(qū)(靜態(tài)區(qū)),文字常量區(qū)。在定義一個(gè)類時(shí),它的成員函數(shù),虛構(gòu)函數(shù),構(gòu)造函數(shù)就被存入程序代碼區(qū),供所有對(duì)象調(diào)用。
在實(shí)例化一個(gè)類的對(duì)象時(shí),并沒(méi)有拷貝類的函數(shù),僅僅存入了數(shù)據(jù)成員,因此類的對(duì)象中有數(shù)據(jù)成員,然而當(dāng)用父類的指針指向子類的對(duì)象時(shí),調(diào)用同名函數(shù)時(shí)會(huì)調(diào)用父類的同名函數(shù),當(dāng)想要調(diào)用子類的同名函數(shù)引入了虛函數(shù),
當(dāng)調(diào)用普通成員函數(shù)時(shí),計(jì)算機(jī)可以在代碼區(qū)識(shí)別該函數(shù),無(wú)需用函數(shù)指針,因而,在對(duì)象中只有數(shù)據(jù)成員的大小。