当前位置:首页 C++ > 正文

c++中static的作用和用法

作者:野牛程序员:2023-07-02 17:23:49 C++阅读 2592

在C++中,static关键字具有多种不同的用法和作用。下面是一些常见的用法和作用:

  1. 静态成员变量(Static Member Variables):在类中声明的静态成员变量属于类本身,而不是类的实例。它们与类的所有实例共享相同的值。静态成员变量必须在类定义外初始化,并且在访问时需要使用类名和作用域解析运算符::

class MyClass {
public:
    static int count;  // 静态成员变量声明
};

int MyClass::count = 0;  // 静态成员变量定义和初始化

int main() {
    MyClass::count++;  // 访问静态成员变量
    return 0;
}
  1. 静态成员函数(Static Member Functions):静态成员函数不依赖于任何类的实例,可以直接通过类名调用。静态成员函数不能访问非静态成员变量,只能访问静态成员变量和其他静态成员函数。

class MyClass {
public:
    static void printCount() {  // 静态成员函数
        cout << count << endl;  // 访问静态成员变量
    }

private:
    static int count;  // 静态成员变量
};

int MyClass::count = 0;

int main() {
    MyClass::printCount();  // 调用静态成员函数
    return 0;
}
  1. 局部静态变量(Local Static Variables):在函数内部声明的静态变量仅在函数首次调用时初始化,并且在函数调用之间保持其值。它们在内存中的生命周期长于自动变量。

void myFunction() {
    static int count = 0;  // 局部静态变量
    count++;
    cout << count << endl;
}

int main() {
    myFunction();  // 输出:1
    myFunction();  // 输出:2
    myFunction();  // 输出:3
    return 0;
}

这些是static关键字在C++中的一些常见用法和作用,它们有助于实现共享数据、提供类级别的操作和保持函数内状态的需求。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击