C/C++|面向?qū)ο缶幊痰撵o態(tài)(static)成員小結(jié)

靜態(tài)成員的概述

  • 在類(lèi)內(nèi)數(shù)據(jù)成員的聲明前加上關(guān)鍵字static,該數(shù)據(jù)成員就是類(lèi)內(nèi)的靜態(tài)數(shù)據(jù)成員,使得其與類(lèi)關(guān)聯(lián)在一起;

幾個(gè)重要的特點(diǎn)

  • 靜態(tài)成員可以是public或者private的;
  • 靜態(tài)數(shù)據(jù)成員的類(lèi)型可以是常量、引用、指針、類(lèi)類(lèi)型等;
  • 類(lèi)的靜態(tài)成員存在于任何對(duì)象之外,對(duì)象中不包含任何與靜態(tài)成員有關(guān)的數(shù)據(jù),也就是任何對(duì)象的成員不包含靜態(tài)成員;
  • 靜態(tài)成員函數(shù)也不與任何對(duì)象綁定在一起,它們不包含this指針;
  • 靜態(tài)成員函數(shù)不能聲明成const的,而且我們也不能在static函數(shù)體內(nèi)使用this指針。

訪問(wèn)靜態(tài)成員

  • 可以使用類(lèi)的對(duì)象、引用或者指針來(lái)訪問(wèn)靜態(tài)成員;
  • 可以通過(guò)類(lèi)和作用域運(yùn)算符直接訪問(wèn)靜態(tài)變量。

定義靜態(tài)成員

  • 既可以在類(lèi)的內(nèi)部,也可以在類(lèi)的外部定義靜態(tài)成員函數(shù)。(在類(lèi)外定義時(shí),不能重復(fù)static關(guān)鍵字,該關(guān)鍵字只出現(xiàn)在類(lèi)的內(nèi)部)
  • 因?yàn)殪o態(tài)數(shù)據(jù)成員不屬于類(lèi)的任一對(duì)象,所以他們并不是在創(chuàng)建類(lèi)時(shí)被定義的;
  • 不能在類(lèi)的內(nèi)部初始化靜態(tài)成員,必須在類(lèi)外部定義和初始化每個(gè)靜態(tài)成員。也不用構(gòu)造函數(shù)初始化;
  • 不過(guò),可以為靜態(tài)成員提供const整數(shù)類(lèi)型的類(lèi)內(nèi)初始值,但要求靜態(tài)成員必須是字面值常量類(lèi)型的constexpr,初始值必須為常量表達(dá)式。

靜態(tài)成員其他使用

  • 靜態(tài)成員和指針成員可以是不完全類(lèi)型(?);
  • 可以使用靜態(tài)成員作為默認(rèn)實(shí)參。
    (注:不完全類(lèi)型是已聲明但未定義的類(lèi)。)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,698評(píng)論 1 51
  • C++文件 例:從文件income. in中讀入收入直到文件結(jié)束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 3,119評(píng)論 0 3
  • 1.面向?qū)ο蟮某绦蛟O(shè)計(jì)思想是什么? 答:把數(shù)據(jù)結(jié)構(gòu)和對(duì)數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作的方法封裝形成一個(gè)個(gè)的對(duì)象。 2.什么是類(lèi)?...
    少帥yangjie閱讀 5,130評(píng)論 0 14
  • 我們是一群人,一群自己都不知道在干些什么的人。我們每個(gè)人都不一樣,在這個(gè)飛速的世界里,有人說(shuō)我們是一群老鼠,啃壞了...
    偷星阿極閱讀 250評(píng)論 0 0

友情鏈接更多精彩內(nèi)容