【发布时间】:2012-07-02 20:24:41
【问题描述】:
为什么静态数据成员初始化必须在类之外?
class X
{
public:
int normalValue = 5; //NSDMI
static int i;
};
int X::i = 0;
为什么静态数据成员(这里是“i”)只是一个声明,而不是一个定义?
【问题讨论】:
-
因为。 ;) 这就是语言的定义方式。 ;)
-
你被允许
static const int i = 10。 -
@CharlesBeattie,这还不是定义,有时需要定义,见gcc.gnu.org/wiki/…