方便地初始化类的静态成员可以通过以下几种方式实现:
class MyClass {
public:
static int myStaticVar;
};
int MyClass::myStaticVar = 10;
在这个例子中,静态成员变量myStaticVar
被直接初始化为10。
class MyClass {
public:
static int myStaticVar;
static void initStaticVar() {
// 一些逻辑处理
myStaticVar = 20;
}
};
int MyClass::myStaticVar = MyClass::initStaticVar();
在这个例子中,静态成员变量myStaticVar
通过静态成员函数initStaticVar()
进行初始化,并在类定义外部进行赋值。
class MyClass {
public:
static int myStaticVar;
static int getStaticVar() {
if (myStaticVar == 0) {
// 初始化逻辑
myStaticVar = 30;
}
return myStaticVar;
}
};
int MyClass::myStaticVar = 0;
在这个例子中,静态成员变量myStaticVar
在静态成员函数getStaticVar()
中进行惰性初始化,并在第一次调用getStaticVar()
时进行赋值。
以上是几种方便地初始化类的静态成员的方式,具体使用哪种方式取决于静态成员变量的特性和需求。
领取专属 10元无门槛券
手把手带您无忧上云