C++this指针
1.this 指針是一個(gè)隱含于每一個(gè)非靜態(tài)成員函數(shù)中的特殊指針。它指向調(diào)用該成員函數(shù)的那個(gè)對(duì)象。
2.當(dāng)對(duì)一個(gè)對(duì)象調(diào)用成員函數(shù)時(shí),編譯程序先將對(duì)象的地址賦給 this 指針,然后調(diào)用成員函數(shù),每次成員函數(shù)存取數(shù)據(jù)成員時(shí),都隱式使用 this 指針。
3.當(dāng)一個(gè)成員函數(shù)被調(diào)用時(shí),自動(dòng)向它傳遞一個(gè)隱含的參數(shù),該參數(shù)是一個(gè)指向這個(gè)成員函數(shù)所在的對(duì)象的指針。
4.this 指針被隱含地聲明為: ClassName const this,這意味著不能給 this 指針賦值;在 ClassName 類(lèi)的 const 成員函數(shù)中,this 指針的類(lèi)型為:const ClassName const,這說(shuō)明不能對(duì) this 指針?biāo)赶虻倪@種對(duì)象是不可修改的(即不能對(duì)這種對(duì)象的數(shù)據(jù)成員進(jìn)行賦值操作);
5.this 并不是一個(gè)常規(guī)變量,而是個(gè)右值(不能取地址),所以不能取得 this 的地址(不能 &this)。
6.在以下場(chǎng)景中,經(jīng)常需要顯式引用 this 指針:
1.為實(shí)現(xiàn)對(duì)象的鏈?zhǔn)揭?#xff1b;
2.為避免對(duì)同一對(duì)象進(jìn)行賦值操作;
在實(shí)現(xiàn)一些數(shù)據(jù)結(jié)構(gòu)時(shí),如 list。
總結(jié)
- 上一篇: C++ static的作用
- 下一篇: C++volatile