21xrx.com
2024-12-22 21:37:37 Sunday
登录
文章检索 我的文章 写文章
C++类的静态变量初始化方法
2023-06-23 20:52:25 深夜i     --     --
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++中,类的静态变量必须在类外进行初始化。我们可以使用类外定义和初始化静态变量的方法,也可以使用静态成员函数和静态初始化块来初始化静态变量。这些方法都保证了静态变量仅被初始化一次,并且在整个程序生命周期内使用。

  
  

评论区

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