2.0 C++遠(yuǎn)征:靜態(tài)

靜態(tài)

[TOC]

二、靜態(tài)

? 關(guān)鍵字:static

“靜態(tài)”使用場景:用作全局的。

1.靜態(tài)數(shù)據(jù)成員

依賴于類,并不依賴于對象。

所開辟的內(nèi)存并不在對象中。

對象聲明多個,但靜態(tài)數(shù)據(jù)成員只會有一份。

普通數(shù)據(jù)成員依賴于對象,對象析構(gòu)則不存在。

// Tank.cpp
class Tank {
  public:
    Tank() {
      s_iCount++;
    }
    ~Tank() {
      s_iCount--;
    }
    static int getCount() {
      return s_iCount;
    }
    static int s_iCount;
  private:
    string m_strCode;
};
int Tank::s_iCount = 0; // 初始化

// main.cpp
int main() {
  // 通過類的訪問方法
  cout << Tank::getCount() << endl;
  cout << Tank::s_iCount << endl;
  
  // 通過對象的訪問方法
  Tank tank;
  cout << tank.getCount() << endl;
  cout << tank.s_iCount << endl;
}

2.靜態(tài)成員函數(shù)

3.靜態(tài)使用注意事項(xiàng)

  • 靜態(tài)數(shù)據(jù)成員必須單獨(dú)初始化;
  • 靜態(tài)成員函數(shù)不能調(diào)用非靜態(tài)成員函數(shù)和非靜態(tài)數(shù)據(jù)成員;
  • 靜態(tài)數(shù)據(jù)成員只有一份,且不依賴對象而存在;
  • 靜態(tài)成員函數(shù)上不允許修飾符。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,656評論 1 51
  • C++文件 例:從文件income. in中讀入收入直到文件結(jié)束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 3,090評論 0 3
  • 1. 讓自己習(xí)慣C++ 條款01:視C++為一個語言聯(lián)邦 為了更好的理解C++,我們將C++分解為四個主要次語言:...
    Mr希靈閱讀 2,981評論 0 13
  • const 引用 const 引用是指向 const 對象的引用:const int ival = 1024;co...
    rogerwu1228閱讀 737評論 0 1
  • 1.首先將gif圖片添加到項(xiàng)目中。2.Source Control ->commit ->填寫注釋-> push完...
    flowerflower閱讀 553評論 0 1

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