因为静态的成员变量不属于某一个类的对象,因为他们都是共享的,那么这样反过来说就是
非静态的成员变量属于类的对象
每个空对象都应该拥有一个独一无二的地址,如果是空的对象那么内存大小为一个字节空间,是为了区分空对象占用内存空间
在下图中,因为非静态的成员变量是属于对象的,所以它的内存空间大小也应该与对象挂钩,在空对象时候对象的大小为一个字节占用内存空间以便区分各个对象,在有两个非静态的成员变量时则对象的内存大小为4+4,因为静态的成员变量不属于对象所以其内存大小也与对象无关
你是不是没有发现上图出现了一个错误但是编译器没有报错,请看第七行,我们创建了静态的成员变量,那么需要类内声明,类外初始化,在这里我们忘记了类外初始化,正确的应该如下图
非静态的成员函数也不属于类的对象上