類中函式的乙個隱含引數 this指標

2021-07-28 07:49:50 字數 1281 閱讀 3705

我們需要來看一段**感受一下。

#include 

using

namespace

std;

class student

private:

char _name[20];

char _gender[5];

int _age = age;

};int main ()

所以上面那個函式引數加完整的話應該為

initstudent(const *this,cha*name,char*gender,int *age);

this指標作為乙個隱含引數傳遞給非靜態成員函式,用以指向該成員函式所屬類所定義的物件。當不同物件呼叫同乙個類的成員函式**時,編譯器會依據該成員函式的this指標所指向的不同物件來確定應該一用哪個物件的資料成員。下面舉乙個簡單例子。

從可以看出兩者的位址是相同的。

開始已經說了this指標是類中函式的乙個隱含引數,是不是呢,以下是乙個小小的檢測。

可以看出,當你在類外自己定義乙個函式時,編譯器根本不能能編譯通過,說明它確實只能在類中使用。

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

2:this指標的型別 類型別 *const

3 : this指標並不是對子昂本身的一部分,不影響sizeof的結果

4:this指標的作用域在類成員函式的內部

5:只有在類的非靜態成員函式中才可以使用,其它任何函式都不可以

1:引數個數確定,this指標通過ecx傳遞給呼叫者。

2:引數不確定,this指標在所有引數被壓入棧後再壓入堆疊。

這裡會涉及到兩個函式呼叫約定 __cdecl __thiscall

函式呼叫約定是指當乙個函式被呼叫時,函式的引數會被傳遞給被呼叫的函式和返回值會被返回給呼叫函式。它就是用來描述引數是怎麼傳遞和由誰平衡堆疊的。

引數是從右向左傳遞的,引數個數固定,由函式本身清理堆疊。

引數也是從右向左傳遞的,引數個數不定,由呼叫者清理堆疊。

Django乙個比較隱含的函式url

來自 django下有乙個比較隱含的函式url,在django conf urls defaults模組中,雖然只有短短的10行 但功能卻很了得。起初初學django,並沒有發現它,templates的鏈結位址都是根據urlpatterns定義的位址,拼湊成位址字串,很難看,而且templates裡...

乙個函式作為另乙個函式的引數

函式的作為變數分裝到另一函式裡面 上面的函式是求乙個定義域能被3正處的數,首先可以想到的是0到100之間內能被3整除的數吧。這個應該很簡單,如下。這裡可以思考的是某個定義域,也就是說上面的i 0和i 100都應該是不確定的值,也就是變數,現在可以定義乙個函式,function checkout st...

linux中top的隱含引數秘密

linux中top的秘密 top中按1鍵和f鍵的引數 按1鍵可以等到多個cpu的情況 按f f 當前狀態,可以按相應的字母鍵做top的定製輸出 後得引數 對f鍵和f鍵的區別 如果進入f鍵區可以做顯示的排序,如果進入f鍵區的話則可以選擇顯示的多個專案 任務標誌 x command command na...