21xrx.com
2024-09-20 05:40:43 Friday
登录
文章检索 我的文章 写文章
如何初始化C++私有静态成员?
2023-07-02 11:26:14 深夜i     --     --
C++ 初始化 私有静态成员 静态变量 类成员

C++中的私有静态成员是指只能在类内部访问的静态变量,通常用于某些共享数据。定义私有静态成员时需要注意初始化问题,本文将介绍如何正确初始化C++私有静态成员。

在C++中,私有静态成员必须在类外初始化,否则编译器会报错。这是因为静态成员变量只有一个副本,即使类被实例化多次,该变量也只有一个副本,因此需要在类外定义并初始化静态成员变量。

以下是定义和初始化私有静态成员的示例代码:


#include <iostream>

class MyClass {

private:

 static int myStaticVariable;

public:

 static int getMyStaticVariable() return myStaticVariable;

};

int MyClass::myStaticVariable = 0;

int main() {

 MyClass obj1, obj2;

 MyClass::myStaticVariable = 10;

 std::cout << obj1.getMyStaticVariable() << std::endl;

 std::cout << obj2.getMyStaticVariable() << std::endl;

 return 0;

}

在这个示例中,我们定义了一个私有静态成员变量`myStaticVariable`,并在类外部将其初始化为0。我们通过调用`MyClass::getMyStaticVariable()`获取静态成员变量的值,并通过`MyClass::myStaticVariable = 10`在类外设置静态成员变量的值。

输出结果为:


10

10

可以看到,`obj1`和`obj2`都返回相同的静态成员变量值。

需要注意的是,如果在私有静态成员变量的定义时未进行初始化,编译器会自动将其初始化为0。但是,为了代码的可读性和可维护性,最好在类外部显式地初始化静态成员变量。

总之,正确初始化C++的私有静态成员变量是一项很重要的任务,我们需要在类外部显示定义和初始化静态成员变量,以确保程序的正确性和可维护性。

  
  

评论区

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