第七節, 靜態成員變數和靜態成員函式
阿新 • • 發佈:2019-02-04
用static修飾的成員變數和成員函式叫做靜態成員變數和靜態成員函式。
下面我們看靜態成員變數和靜態成員函式有什麼不同的地方。
首先看下面一個例子:
這個例子中聲明瞭靜態成員變數manyCounts和靜態成員函式getCounts().class Cat { int age; public: static int manyCounts; void setAge(int aAge) { age = aAge; manyCounts++; }; static int getCounts() { return manyCounts; }; }; //初始化靜態成員變數 int Cat::manyCounts = 0; int main(int argc, const char * argv[]) { Cat * cat = new Cat; cat->setAge(55); int count = Cat::getCounts(); std::cout<<"數量:"<<count; return 0; }
首先我們應該明白,靜態成員變數儲存在全域性區,實在編譯的時候申請的儲存空間,其他非靜態一般是在執行時獲取儲存空間,這一點至關重要,必須得理解。
接下來我們看靜態成員變數的初始化方式,宣告型別,並且在呼叫靜態成員變數的時候,必須用類名去呼叫,而且中間不再是“.”,“->”而是“::”.
呼叫靜態成員函式也和呼叫靜態成員變數差不多,形式“類名::靜態函式名”。