静态C ++类成员何时初始化?

可以使用static关键字定义静态C ++类成员。一个类中的静态成员由所有类对象共享,因为在内存中只有一个静态类成员的副本,而与该类的对象数量无关。

如果没有以任何其他方式初始化该类的第一个对象,则在创建该类的第一个对象时,该静态类成员将初始化为零。

给出了一个演示C ++中静态类成员的程序,如下所示。

示例

#include <iostream>
using namespace std;
class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;
int main() {
   Example obj;
   obj.func();
   return 0;
}

输出结果

上面程序的输出如下。

The value of static member a: 20

现在让我们了解上面的程序。

在类Example中,静态类成员是a。该函数func()显示a的值。显示此代码段如下。

class Example {
   public :
   static int a;
   int func() {
      cout << "The value of static member a: " << a;
   }
};
int Example::a = 20;

在函数中main(),创建了Example类的对象obj。然后func()调用该函数以显示a的值。显示此代码段如下。

int main() {
   Example obj;
   obj.func();
   return 0;
}