gpt4 book ai didi

c++ - 类内静态成员变量赋值

转载 作者:行者123 更新时间:2023-11-28 00:55:28 33 4
gpt4 key购买 nike

这是代码,

class A {
public:
static A *get_a()
{
if(_pa == 0)
_pa = new A;
return _pa;
}

private:
static A *_pa = 0; //cannot compile
};

在上面的代码中,如果我将 _pa 的定义移出类,

A * A::_pa = 0;  //can compile

我的问题是,类体内的 static A *_pa = 0 只是一个声明,而不是定义,对吧?

此外,给类内部的static数据成员赋值是否有效?

最佳答案

除非是 const 整数类型(char、short、int、...),除了在 header 中声明之外,您还必须在 .cpp 文件中定义静态成员。

header:
class XYZ {
static XYZ * instance;
};

//cpp:
XYZ * XYZ::instance;

关于c++ - 类内静态成员变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643883/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com