程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++ static,static

C++ static,static

編輯:C++入門知識

C++ static,static


本文主要記錄的C++中static的一些內容,內容簡單,僅僅作為梳理一下知識,如有錯誤請留言指出。


static的作用

總的來說,static控制了變量和函數的使用范圍(本地數據化和代碼范圍的控制)


static全局變量和普通全局變量的區別

全局變量和靜態全局變量都是靜態存儲方式。區別在於:非靜態全局變量的作用域是整個源程序,當一個源程序有多個源文件組成時,非靜態的全局變量在各個源文件都有效,而靜態全局變量則限制了作用域,只定義了該靜態全局變量的源文件有效,同一源程序的其他源文件不能使用它,使用靜態全局變量可以避免在其他源文件中引起錯誤。

綜上:把局部變量改成靜態變量改變了它的存儲方式,及改變了它的生存期,把全局變量改為靜態變量,改變了它的作用域,限制了它的使用范圍。


C++類的靜態數據和方法成員

類中的靜態成員和方法不屬於類的實例,而屬於類本身並在所有類的實例間共享。調用這些時,應用類名::來引用。

#include <iostream>
using namespace std;
class Widget
{
public:
    Widget()
    {
        ++count;
    }
    ~Widget()
    {
        --count;
    }
    static int num()//靜態成員函數
    {
        return count;
    }
private:
    static int count;//靜態私有數據成員
};

int Widget::count = 0;//

int main()
{
    Widget x,y;
    cout<<"The num is:"<<Widget::num()<<endl;
    if(Widget::num()>1)
    {
        Widget x,y,z;
        cout<<"The num is:"<<Widget::num()<<endl;
    }
    Widget z;
    cout<<"The num is:"<<Widget::num()<<endl;
    cout << "Hello World!" << endl;
    return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved