21xrx.com
2025-06-28 22:07:39 Saturday
登录
文章检索 我的文章 写文章
在C++中使用静态变量
2023-07-06 14:27:11 深夜i     28     0
C++ 静态变量 全局变量 局部变量

在C++中,静态变量是一种定义在函数内部或类中,生命周期延长至程序运行结束的变量。静态变量只会被初始化一次,且默认值为0,除非在定义时给定初始化值。

在函数内部定义静态变量可以作为一个常量或计数器使用,例如:

void print() {
  static int counter = 0;
  counter++;
  std::cout << "This function has been called " << counter << " times" << std::endl;
}

每次调用函数`print()`时,`counter`的值会加1,并且这个变量的生命周期在整个程序运行中都存在,而不是只在函数内部。

在类中使用静态变量可以用于跨对象共享数据,例如:

class Car {
  private:
    static int count; // 静态变量
  public:
    Car() {
      count++;
    }
    static int getTotalCount()
      return count;
    
};
int Car::count = 0; // 静态变量初始化
int main() {
  Car car1, car2, car3;
  std::cout << "Total cars: " << Car::getTotalCount() << std::endl;
  // 输出:Total cars: 3
  return 0;
}

这里定义了一个名为`count`的静态变量,用于计算`Car`类的对象数量。每当创建一个`Car`对象时,静态变量`count`的值就会加1,调用静态函数`getTotalCount()`可以返回`Car`类的总对象数。

需要注意的是,在静态函数内部无法访问非静态成员变量和函数,但非静态成员函数可以访问静态成员变量和函数。

综上所述,静态变量是一种十分有用的编程工具,可以在函数和类中使用,具有跨作用域和跨对象的功能。

  
  

评论区