1. 程式人生 > 實用技巧 >C++入門--靜態成員變數/函式

C++入門--靜態成員變數/函式



靜態成員變數:

1、要單獨的把實現寫在類外(cpp)

2、預設會用0對該成員進行初始化

3、靜態成員變數是同一個類的不同物件共用的

4、本質上是一個帶類域的全域性變數(CInterger::m_static = 1;)

#include <iostream>
#include <string>
using namespace std;

class CInterger {
   public:
    CInterger(int nNumber) : m_nNumber(2) { m_nNumber = nNumber; }
    void SetNumber(int
nNumber) { m_nNumber = nNumber; }; static int m_nStatic; private: int m_nNumber; }; int CInterger::m_nStatic; //在類外(cpp)單獨宣告是哪一個類的靜態成員 int main(int argc, char const *argv[]) { CInterger i(1); i.m_nStatic = 2; return 0; }

  

靜態成員函式:

1、在標頭檔案的函式名前面加上關鍵字static

2、函式內部不能訪問普通成員變數,只能訪問靜態成員變數

3、本質:靜態成員函式中沒有this指標,因此不能通過this指標訪問到物件的普通成員變數

4、靜態成員函式實際上就是帶類域的全域性函式

5、靜態函式可以作為執行緒回撥函式的宣告