初学者提问,C++类中静态方法和静态属性所占内存空间问题,谢谢大家

有如下代码

class A
{
    static int a;
    static test();
}
int a= 3;

问题:class A写完了之后在内存有分配空间吗?
为什么a还要在外边声明赋值一下?谢谢

1.
定义一个类是没有给地址的,只有在实例化的时候才会给

2.
这样编译还是报错
应该是

int A::a=3;

a是静态变量,需要在外部重新声明,静态函数也一样
至于为什么还要在外部声明,就是因为他没有地址,编译器不知道它是多少