C 作用域與生命週期 靜態static

2021-07-23 22:32:33 字數 1290 閱讀 4668

1⃣️靜態區域性變數作用域不變,生命週期延長至程式執行結束

2⃣️靜態全域性變數作用域變小,不能extern引用,生命週期不變

類中的靜態成員:成員函式,成員變數都是使用物件來進行呼叫,

也有些資料成員和成員函式屬於整個類,稱這些成員為類的靜態成員(這些成員不屬於物件,建立物件時不會為靜態成員開闢空間)

靜態成員整個類只有乙份空間(靜態空間)

emploee::pay(50);//靜態成員函式的呼叫=>類名::靜態成員函式名稱

1⃣️類的靜態成員變數初始化在類外         型別名  類名::  變數初始化    (int student:: allstudent=0;)

2⃣️靜態成員(函式、變數)屬於類,非靜態成員則屬於某乙個物件

3⃣️靜態成員函式的呼叫    emploee::pay(50);//靜態成員函式的呼叫=>類名::靜態成員函式名稱

類占用空間大小計算方式:成員變數的累加(自動補齊),靜態成員變數不計算在內

靜態成員函式不能訪問非靜態成員變數與非靜態成員函式,而普通成員函式技能訪問靜態成員變數,又能訪問到靜態成員函式

友元函式:函式中可以直接訪問其私有成員(friend point middle(point &p1,point &p2);)//不是成員函式,是普通函式

友元類:若la是類b的友元類,則a的成員函式均為類b的友元函式(1⃣️單向2⃣️不傳遞)

#include

#include

using namespace std;

class emploee

~emploee()

}void display()

// 類的靜態成員函式

static void pay(int onepay)

static void allperson()

};// 類的靜態成員變數初始化在類外

int emploee:: allnum=0;

int emploee:: totalpays=0;

int main(int argc, const char * argv)

作用域與生命週期

作用域與生命週期是描述了常量,變數,函式的等物件的使用範圍,當程式 中這些物件一旦超過了這個範圍,那麼將出現編譯錯誤。下面我們來研究一下它 區域性作用域描述的是函式體中變數和函式的適用範圍,每乙個函式都有自己的區域性作用域。在函式體中定義的變數,函式對於外部函式是不可見的看,因為他們在函式的區域性作...

作用域與生命週期

在c 語言中名字有作用域,物件 變數 有生命週期。如果不理解這兩個概念那麼我們一般會犯很多低階的錯誤。比如返回區域性物件的引用等。include using namespace std return local array int func1 return a return local object...

作用域 生命週期

作用域 能夠被使用的範圍 生命週期 生命的誕生和死亡 在類裡頭,先使用變數,後期到main裡幫助建立生命 在main裡頭作用域的範圍小於等於生命週期的範圍,在使用作用域之前已經預設存在生命週期了 作用域是不考慮生命週期的,因為作用域的線路比執行時候來的條數廣 作用域是製造多條線路,生命週期是執行一條...