C++之 static 关键字
C++之 static 關(guān)鍵字
C++中的關(guān)鍵字 static,顧名思義表示靜止、靜態(tài)。
1. 作用于函數(shù)內(nèi)部的局部變量
局部作用域靜態(tài)變量的特點(diǎn):當(dāng)一個(gè)函數(shù)返回后,下一次再調(diào)用時(shí),該變量還會(huì)保持上次的值,函數(shù)內(nèi)部的靜態(tài)變量只開(kāi)辟一次空間,且不會(huì)因?yàn)槎啻握{(diào)用產(chǎn)生副本,也不會(huì)因?yàn)楹瘮?shù)返回而失效。
注意:
2. 作用于類的成員
解決同一個(gè)類的不同對(duì)象之間數(shù)據(jù)和函數(shù)共享問(wèn)題
2.1 作用于類的數(shù)據(jù)成員
靜態(tài)成員在每一個(gè)類中只有一個(gè)副本,由該類所有對(duì)象共同維護(hù)和使用,從而實(shí)現(xiàn)同一個(gè)類的不同對(duì)象的數(shù)據(jù)共享。需要注意:
- 使用 類名::標(biāo)識(shí)符 的方式訪問(wèn)靜態(tài)數(shù)據(jù)成員,因?yàn)殪o態(tài)數(shù)據(jù)成員不屬于任何一個(gè)對(duì)象
- 對(duì)靜態(tài)數(shù)據(jù)成員初始化,在類定義外進(jìn)行,以這種方式專門為他們分配空間。如果直接在類內(nèi)定義靜態(tài)數(shù)據(jù)成員,編譯器則會(huì)報(bào)錯(cuò)
2.2 作用于類的函數(shù)成員
靜態(tài)成員函數(shù)就是使用 static 關(guān)鍵字聲明的函數(shù)成員,同靜態(tài)數(shù)據(jù)成員一樣,靜態(tài)成員函數(shù)也屬于整個(gè)類,由該類所有對(duì)象共同擁有,為所有對(duì)象共享
(1)靜態(tài)成員函數(shù)主要用于處理該類的靜態(tài)數(shù)據(jù)成員,可以直接調(diào)用靜態(tài)數(shù)據(jù)成員。如果訪問(wèn)非靜態(tài)成員,要通過(guò)對(duì)象來(lái)訪問(wèn)。
class Person { public:static void findPerson(Person person); private:int age;static int sex; }; void Person::findPerson(Person person) {cout << age; // 對(duì) age 的引用是錯(cuò)誤的cout << person.age; // 正確cout << sex; //對(duì) sex 的引用是正確的的,引用靜態(tài)數(shù)據(jù)成員 }(2)在類外使用j靜態(tài)成員函數(shù)
- 使用 類名 :: 函數(shù)名 操作符來(lái)調(diào)用靜態(tài)成員函數(shù)
- 使用 類.函數(shù)名 調(diào)用
總結(jié)
以上是生活随笔為你收集整理的C++之 static 关键字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++入门之常量与变量
- 下一篇: c++获取时间戳_「崩坏3」众星陨落 |