类是描述,对象是实体。在类里所描述的成员变量,是位于这个类的每一个对象中的。
而如果某个成员有static关键字做修饰,它就不再属于每一个对象,而是属于整个类的了。
类变量是属于类的,只有一份,不像成员变量一样,每个对象都有一份,对象也可以访问这个类变量,但因为只有一份,每个对象对类变量的修改都会生效,可以理解为,类和所有对象共用一个变量。
类中的成员变量在定义对象后,都是相互独立的,对应变量只属于对应的对象,而类变量(static)是属于这个类的。
对象可以访问类变量,但这个类变量只有一份,并不是独立的,只属于类。
结果:
2
4
通过每个对象都可以访问到这些类变量和类函数,但是也可以通过类的名字来访问它们。类函数由于不属于任何对象,因此也没有办法建立与调用它们的对象的关系,就不能访问任何非static的成员变量和成员函数了。
类函数(类中static的函数)不能调用非static的成员变量。
结果
2
4
4
4
4