21xrx.com
2025-03-25 06:46:19 Tuesday
文章检索 我的文章 写文章
C++类的静态变量初始化方法
2023-06-23 20:52:25 深夜i     16     0
C++ 静态变量 初始化方法

C++语言中,类的静态变量是在类的定义中声明的,但是必须在类外进行初始化。因为静态变量是类的所有实例共享的,所以只需要对它进行一次初始化即可。

静态变量可以通过以下两种方法进行初始化。

1.在类外定义和初始化静态变量

这是一种常见的初始化方法。在类的定义中声明静态变量,并在类外定义并初始化静态变量。代码示例:

// MyClass.h
class MyClass
public:
  static int static_var;
;
// MyClass.cpp
#include "MyClass.h"
int MyClass::static_var = 10;

在上面的代码示例中,我们定义了一个名为MyClass的类,并在其中定义了一个名为static_var的静态变量。在类外使用MyClass::static_var可以访问静态变量,并初始化它为10。

2.使用静态成员函数和静态初始化块进行初始化

我们还可以使用静态成员函数和静态初始化块来初始化静态变量。静态成员函数可以在类的任何实例之间共享,而静态初始化块是一段代码,在程序运行时仅执行一次。下面是示例代码:

// MyClass.h
class MyClass {
public:
  static int static_var;
  static void init();
};
// MyClass.cpp
#include "MyClass.h"
int MyClass::static_var;
void MyClass::init()
  static_var = 10;
static MyClassInitializer {
  MyClass::init();
};

在上面的代码示例中,我们定义了一个名为MyClassInitializer的静态初始化块,它将调用MyClass::init()函数,从而初始化静态变量static_var为10。这个静态初始化块将在程序运行时执行且只执行一次。

总结:

在C++中,类的静态变量必须在类外进行初始化。我们可以使用类外定义和初始化静态变量的方法,也可以使用静态成员函数和静态初始化块来初始化静态变量。这些方法都保证了静态变量仅被初始化一次,并且在整个程序生命周期内使用。

  
  

评论区