c 中的this(百度百科)

2021-06-12 22:21:39 字數 1079 閱讀 3496

今天primer中看到了*this p376  ,也查了下百科

關於this指標的乙個經典回答:

當你進入乙個房子後,

你可以看見桌子、椅子、地板等,

但是房子你是看不到全貌了。

對於乙個類的例項來說,

你可以看到它的成員函式、

成員變數,

但是例項本身呢?

this是乙個指標,它時時刻刻指向你這個例項本身

儘管在成員函式中顯示引用this通常不必要,但當需要將乙個物件作為整體引用時顯示引用。

在非const成員函式中,this型別是一const指標,即我麼們可以改變指向的物件,但不能改變this儲存的位址。在const成員函式中,this的型別是乙個指向const類類物件的const指標。即不能改變指向的物件也不改變位址

避免使用未初始化的指標,盡量在使用指標的時候定義,當然初始化時可以直接使用cstdlib中定義的null賦值為0,是個好習慣

例如,當呼叫成員函式a.volume時,編譯系統就把物件a的起始位址賦給this指標,於是在成員函式引用資料成員時,就按照this的指向找到物件a的資料成員。例如volume函式要計算height*width*length的值,實際上是執行:

(this->height)*(this->width)*(this->length)

由於當前this指向a,因此相當於執行:

(a.height)*(a.width)*( a.length)

這就計算出長方體a的體積。

同樣如果有b.volume( ) ,編譯系統就把物件b的起始位址賦給成員函式volume的this指標,顯然計算出來的是長方體b的體積。this指標是隱式使用的,它是作為引數被傳遞給成員函式的。

本來,成員函式volume的定義如下:

int box::volume( )

c++把它處理為

int box::volume(box *this)

即在成員函式的形參表列中增加乙個this指標。

在呼叫該成員函式時,實際上是用以下方式呼叫的:

a.volume(&a);

將物件a的位址傳給形參this指標。然後按this的指向去引用其他成員。

AnimateWindow 百度百科

animatewindow 開放分類 程式設計 計算機 api 函式功能 該函式能在顯示與隱藏視窗時能產生特殊的效果。有兩種型別的動畫效果 滾動動畫和滑動動畫。函式原型 bool animatewindow hwnd hwnd,dword dwtime,dword dwflags 引數 hwnd 指...

WCF百度百科

根據微軟官方的解釋,wcf 之前的版本名為 indigo 是使用託管 建立和執行面向服務 service oriented 應用程式的統一框架。它使得開發者能夠建立乙個跨平台的安全 可信賴 事務性的解決方案,且能與已有系統相容協作。wcf是微軟分布式應用程式開發的集大成者,它整合了.net平台下所有...

Mashup 百度百科

mashup是糅合,是當今網路上新出現的一種網路現象,將兩種以上使用公共或者私有資料庫的web應用,加在一起,形成乙個整合應用。一般使用源應用的api介面,或者是一些rss輸出 含atom 作為內容源,合併的web應用用什麼技術,則沒有什麼限制。mashup在geek群體和網際網路玩家之中獲得了極大...