
生存期,即從誕生到消失的時(shí)間段,在生存期內(nèi),對(duì)象的值或保持不變,知道改變他的值為止。對(duì)象生存期分為靜態(tài)生存期和動(dòng)態(tài)生存期兩種。
靜態(tài)生存期
指對(duì)象的生存期與程序運(yùn)行期相同。在namespace中聲明的對(duì)象都具有靜態(tài)生存期。但是,在函數(shù)內(nèi)部作用域中聲明具有動(dòng)態(tài)生存期的對(duì)象,要用static修飾,如static int a。
在局部作用域中,靜態(tài)變量的特點(diǎn)是不會(huì)隨函數(shù)的每次調(diào)用而產(chǎn)生一個(gè)副本,同時(shí)也不會(huì)因?yàn)楹瘮?shù)的返回而消失。該變量會(huì)一直保持上一個(gè)值,在每次調(diào)用中可共享。同時(shí)靜態(tài)變量在定義時(shí)也可以賦值,如static int a = 3;
動(dòng)態(tài)生存期
除上述兩種情況,其余為動(dòng)態(tài)生存期。在局部作用域中,有動(dòng)態(tài)生存期的對(duì)象,也稱為局部生存期對(duì)象。局部生存期對(duì)象誕生于聲明點(diǎn),結(jié)束于聲明塊執(zhí)行完畢。在類中不用static修飾的成員,他們的生存期和對(duì)象生存期一致。
類的靜態(tài)成員
類的靜態(tài)成員是解決同一個(gè)類的不同對(duì)象之間數(shù)據(jù)和函數(shù)的共享問題的。如每生成一個(gè)對(duì)象,則計(jì)數(shù)+1,從而統(tǒng)計(jì)一共創(chuàng)建了多少個(gè)對(duì)象。
靜態(tài)數(shù)據(jù)成員
在類的一個(gè)屬性中,如果某個(gè)屬性為整個(gè)類所共享,則用static修飾為靜態(tài)成員。該成員在每個(gè)類中只有一個(gè)副本,由所有對(duì)象共同維護(hù),從而實(shí)現(xiàn)數(shù)據(jù)共享。
靜態(tài)數(shù)據(jù)成員具有靜態(tài)生存期,因?yàn)殪o態(tài)數(shù)據(jù)成員不屬于任何對(duì)象,可以這么訪問,”類名::成員名 | 對(duì)象名.成員名 | 指針->成員名 | 引用.成員名“ 。另外,在類定義中,僅進(jìn)行引用性聲明,而在namespace作用域中使用類名限定定義性聲明,或初始化。(原因:這樣定義是因?yàn)檫@種方式要專門分配空間,非靜態(tài)數(shù)據(jù)成員的空間與所屬對(duì)象空間是同時(shí)分配的,所以無(wú)須這樣定義)。
靜態(tài)函數(shù)成員
靜態(tài)成員函數(shù)可以直接訪問類的靜態(tài)數(shù)據(jù)和函數(shù)成員,而訪問非靜態(tài)成員,必須通過(guò)對(duì)象名。所以一般情況下,靜態(tài)函數(shù)用來(lái)訪問類的靜態(tài)數(shù)據(jù)成員。
本文由培訓(xùn)無(wú)憂網(wǎng)達(dá)內(nèi)教育專屬課程顧問老師整理發(fā)布,更多C語(yǔ)言課程信息可關(guān)注培訓(xùn)無(wú)憂網(wǎng)C語(yǔ)言培訓(xùn)頻道或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處和鏈接 http://m.elsolbar.com/news-id-13834.html 違者必究!部分文章來(lái)源于網(wǎng)絡(luò)由培訓(xùn)無(wú)憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請(qǐng)自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請(qǐng)關(guān)注c語(yǔ)言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請(qǐng)?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050