21xrx.com
2024-11-22 03:23:31 Friday
登录
文章检索 我的文章 写文章
在C++中使用静态变量
2023-07-06 14:27:11 深夜i     --     --
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`类的总对象数。

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

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

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复