一個(gè)網(wǎng)站按鈕怎么做圖片優(yōu)化
簡(jiǎn)介: CSDN博客專家,專注Android/Linux系統(tǒng),分享多mic語(yǔ)音方案、音視頻、編解碼等技術(shù),與大家一起成長(zhǎng)!
優(yōu)質(zhì)專欄:Audio工程師進(jìn)階系列【原創(chuàng)干貨持續(xù)更新中……】🚀
人生格言: 人生從來(lái)沒(méi)有捷徑,只有行動(dòng)才是治療恐懼和懶惰的唯一良藥.
1.前言
本篇目的:理解C++之his指針應(yīng)用實(shí)例。
C++中的this
指針是一個(gè)特殊指針,它指向當(dāng)前對(duì)象的地址。它只能在成員函數(shù)(方法)中使用,并且用于引用當(dāng)前對(duì)象的成員變量和成員函數(shù)。通過(guò)this
指針,你可以在成員函數(shù)內(nèi)部訪問(wèn)和操作當(dāng)前對(duì)象的成員。
當(dāng)你在一個(gè)成員函數(shù)中引用一個(gè)成員變量時(shí),編譯器會(huì)將其解析為this->variable
,其中this
就是指向當(dāng)前對(duì)象的指針。這使得你可以區(qū)分同名的局部變量和成員變量。
2.應(yīng)用實(shí)例
<1>.代碼示例
#include <iostream>
using namespace std;class Parent{
public://指向當(dāng)前對(duì)象的副本Parent test1(){printf("xxx---------->%s(), line = %d, this = %p\n",__FUNCTION__,__LINE__,this);return *this;}//指向當(dāng)前對(duì)象的指針Parent *test2(){printf("xxx---------->%s(), line = %d, this = %p\n",__FUNCTION__,__LINE__,this);return this;}//指向當(dāng)前對(duì)象的引用&Parent &test3(){printf("xxx---------->%s(), line = %d, this = %p\n",__FUNCTION__,__LINE__,this);return *this;}
};int main(){Parent pt;pt.test1();pt.test2();pt.test3();
}
<2>.this指針用法區(qū)別
- test1 函數(shù)返回值類型為 Parent,使用值拷貝的方式返回了當(dāng)前對(duì)象的副本。在函數(shù)內(nèi)部,使用 *this 獲取當(dāng)前對(duì)象的引用,然后返回該引用所指向的副本。這意味著調(diào)用 test1 后,會(huì)創(chuàng)建一個(gè)新的 Parent 對(duì)象并將其拷貝到調(diào)用方。
- test2 函數(shù)返回值類型為 Parent 指針 (Parent*),它返回了指向當(dāng)前對(duì)象的指針。在函數(shù)內(nèi)部,使用關(guān)鍵詞 this 獲取了指向當(dāng)前對(duì)象的指針,并將該指針直接返回。這意味著調(diào)用 test2 后,會(huì)得到指向調(diào)用對(duì)象的指針。
- test3 函數(shù)返回值類型為 Parent 的引用 (Parent&),使用引用的方式返回了當(dāng)前對(duì)象的引用。在函數(shù)內(nèi)部,使用 *this 獲取當(dāng)前對(duì)象的引用,并將該引用直接返回。這意味著調(diào)用 test3 后,會(huì)得到指向調(diào)用對(duì)象的引用。
<3>.總結(jié)
這三種方式的區(qū)別:
1.test1 返回當(dāng)前對(duì)象的副本
2.test2 返回指向當(dāng)前對(duì)象的指針
3.test3 返回指向當(dāng)前對(duì)象的引用