溫馨提示×

c++ static變量作用域是啥

c++
小樊
130
2024-11-25 19:28:54
欄目: 編程語言

C++中的static變量具有以下作用域:

  1. 如果static變量定義在函數內部,那么它的作用域僅限于該函數。這意味著在其他函數中無法訪問此靜態變量。每次調用該函數時,靜態變量都會保留其上一次調用結束時的值。
void func() {
    static int count = 0;
    count++;
    cout << "This function has been called " << count << " times." << endl;
}
  1. 如果static變量定義在全局作用域中,那么它的作用域是整個程序。這意味著在整個程序中都可以訪問此靜態變量。靜態全局變量在程序啟動時初始化,并在程序結束時銷毀。
int global_count = 0;

void func() {
    static int count = 0;
    count++;
    cout << "This function has been called " << count << " times." << endl;
}
  1. 如果static變量定義在類中,那么它的作用域僅限于該類的成員函數。這意味著只有該類的成員函數可以訪問此靜態變量。靜態成員變量在類首次被實例化時初始化,并在程序結束時銷毀。
class MyClass {
public:
    static int count;
};

int MyClass::count = 0;

void func() {
    MyClass obj;
    MyClass::count++;
    cout << "MyClass has been instantiated " << MyClass::count << " times." << endl;
}

總之,C++中的static變量作用域取決于它的定義位置。在函數內部定義的靜態變量僅在該函數中可見,而在全局作用域或類中定義的靜態變量在整個程序中可見。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女