これがコードです、
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
さらに、クラス内のデータメンバーに値を割り当てることは有効ですか?