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 關鍵字修飾成員函式,靜態方法可以使用 類名.方法名 的形式來訪問,也可以...