this指針
同一個(gè)類中,不同的對(duì)象.
比如:"小狗"的類中有,黑狗和白狗.
那么"黑狗"和"白狗"實(shí)際上運(yùn)行的代碼都是"小狗"這個(gè)類的,
也就是兩者,運(yùn)行的代碼有一部分都是相同的,比如有一個(gè)相同的函數(shù).
黑白狗中的成員函數(shù),如何知道該運(yùn)行"黑狗"參數(shù)還是"白狗"參數(shù).
這里靠的就是this指針了.
每個(gè)對(duì)象都有一個(gè)this指針,
黑狗和白狗都有各自的this指針.
this指針記錄了對(duì)象的內(nèi)存地址.this指針也就是指向自身數(shù)據(jù)的指針.
"黑狗"的this指針指向"黑狗",
"白狗"的this指針指向"白狗",
this指針特點(diǎn):
1,this指針只能在成員函數(shù)中使用.
?? 事實(shí)上,成員函數(shù)的第一個(gè)參數(shù)就是this指針,只不過(guò)c++隱含了.
?? 比如,小狗類中的run()函數(shù),看似沒(méi)有傳參,實(shí)際上, run(T* const this);
?? 傳入的T* const this 就是this指針,只不過(guò)c++幫我們簡(jiǎn)化了.
2,this指針在成員函數(shù)開始前進(jìn)行構(gòu)造,在成員函數(shù)結(jié)束后清除.
3,this 指針會(huì)因編譯器不同而有不同的放置位置??赡苁菞?,也可能是寄存器,甚至全 局變量。
標(biāo)簽: