C++入門--靜態成員變數/函式
阿新 • • 發佈:2020-10-16
靜態成員變數:
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(intnNumber) { 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、靜態函式可以作為執行緒回撥函式的宣告