面試 static關鍵字

2021-10-21 23:13:30 字數 1047 閱讀 6830

static可以修飾變數和函式

修飾函式:改變該函式的連線屬性,表明該函式只能在當前檔案中使用

修飾變數:

全域性變數:表明該變數只能在當前檔案中使用

函式體中的區域性變數:1.延長該變數的生命週期(和成員函式的生命週期一樣)

2.類似該變數具有記憶的功能

3.存放位置不同於函式體中的區域性變數

因為c++要相容c語言,所以在修飾函式和變數時同c語言。除此之外c++中static還可以修飾類成員:成員變數和成員函式—>靜態成員

沒有包含在具體的物件中,是所有物件共享的成員變數。

只有乙份,是類的屬性。

靜態成員變數不會影響sizeof的結果。

初始化:不能放在建構函式初始化列表位置初始化,只能在類外單獨進行初始化。

使用方法:物件.靜態成員變數 <=> 類名::靜態成員變數

每個物件中都有乙份。

只能在建構函式初始化列表位置進行初始化。

物件.普通成員變數

呼叫:

1.物件.靜態成員函式名(); <=> 類名::靜態成員函式名();

2.內部沒有this指標–沒有隱藏的this指標引數

3.靜態成員函式中不能訪問非靜態成員變數,不能訪問非靜態成員函式

4.靜態成員函式不能使用const進行修飾–因為:const修飾成員函式,本質是在修飾this指標,而靜態成員函式沒有this指標

5.靜態成員函式預設呼叫約定:_cdecl

呼叫:

1.物件.成員函式();

2.肯定有this指標

3.可以訪問靜態成員函式,可以訪問靜態成員變數

4.可以被const修飾–const成員函式

5.預設呼叫約定:this_call

注意:建構函式/拷貝建構函式/賦值運算子過載/析構函式都不能被static修飾

順便帶一下extern

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...

Java this關鍵字,static關鍵字

1,this.屬性,this.方法,表示當前物件的屬性,當前類的方法 2,this,表示當前物件,當前正在操作這個方法的物件就是當前物件 3,使用this 引數若干 可以呼叫當前類的構造方法,如果,構造方法之間相互呼叫,則有要求 一 this 必須放在首行,二 至少有乙個構造方法是沒有呼叫this ...

static關鍵字 final 關鍵字

特點 隨著類的載入而載入,也就是說靜態會隨著類的消失而消失,說明他的生命週期最長 靜態變數 static 關鍵字修飾成員變數,使用 類名.變數名 的形式來訪問,也可以使用 例項物件.變數名 的形式來訪問。靜態方法 static 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...