这是代码,
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
此外,为类内的数据成员赋值是否有效?