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

有如下代码

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

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

c++

1个回答

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

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

int A::a=3;

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问