91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++ static的作用是什么

c++
小億
81
2024-09-13 14:09:18
欄目: 編程語言

在C++中,static關鍵字有多種用途,具體取決于它在代碼中的上下文

  1. 靜態局部變量:在函數內部使用static修飾局部變量時,該變量的生命周期將從創建時開始,直到程序結束。這意味著,當函數返回時,靜態局部變量不會被銷毀,而是保留其值,以便在下次調用該函數時可以繼續使用。

    void myFunction() {
        static int count = 0;
        count++;
        cout << "This function has been called "<< count << " times."<< endl;
    }
    
  2. 靜態成員變量:在類中使用static修飾成員變量時,該變量將屬于整個類,而不是類的某個特定實例。因此,所有類的實例共享相同的靜態成員變量。

    class MyClass {
    public:
        static int sharedValue;
    };
    
    int MyClass::sharedValue = 0;
    
    int main() {
        MyClass obj1, obj2;
        obj1.sharedValue = 10;
        cout << "obj1.sharedValue: "<< obj1.sharedValue << ", obj2.sharedValue: "<< obj2.sharedValue<< endl; // 輸出:obj1.sharedValue: 10, obj2.sharedValue: 10
    }
    
  3. 靜態成員函數:在類中使用static修飾成員函數時,該函數不能訪問類的非靜態成員變量或非靜態成員函數,因為它們需要一個類的實例才能訪問。靜態成員函數可以在沒有類實例的情況下調用。

    class MyClass {
    public:
        static void printMessage() {
            cout << "Hello, World!"<< endl;
        }
    };
    
    int main() {
        MyClass::printMessage(); // 輸出:Hello, World!
    }
    
  4. 靜態全局變量:在全局范圍內使用static修飾變量時,該變量的作用域將限制在定義它的源文件中。這意味著,在其他源文件中,無法直接訪問這個靜態全局變量。

    // file1.cpp
    static int globalVar = 10;
    
    // file2.cpp
    // 無法直接訪問file1.cpp中的globalVar
    

總之,static關鍵字在C++中具有多種用途,包括控制變量的生命周期、共享數據、限制函數和變量的作用域等。

0
秭归县| 惠来县| 高密市| 铅山县| 宜章县| 邹平县| 四川省| 保靖县| 连云港市| 衡阳县| 鄄城县| 滦平县| 剑河县| 安徽省| 泽库县| 枣庄市| 米泉市| 密山市| 田阳县| 繁峙县| 台安县| 新建县| 城口县| 仪陇县| 新营市| 司法| 北川| 五寨县| 扶风县| 宁陕县| 湘潭县| 定襄县| 乌苏市| 永福县| 厦门市| 印江| 陆丰市| 屏南县| 岫岩| 灌云县| 华池县|