为什么类的静态成员变量要在外面声明 ,而局部变量不需要?



```c++
class person
{
public:
    static void func()
    {
        a = 12;
    }

    static int a;

};

int person:: a = 0;

```

外面指哪里,函数外面?
都已经静态成员变量了,你总不能执行这个函数就声明变量,不执行就不声明吧,那像话吗,想想也不可能啊。

第16行int person:: a = 0;写错了,应该是person:: a = 0;这是给变量赋值,不是声明