c++中类的对象有其相应的方法和属性,类本身也有其对象和方法,称为静态方法和静态属性。
在类声明时,在类的属性前加上 static 表示该属性属于类共有的。如
class classname
{
public:
static int get_Num();
private :
static int classnum;
}
classnum属于类classname的静态属性,get_Num()属于其静态方法;
静态属性要在类定义中声明并初始化,为其分配内存空间;——错了
正确为: 静态成员变量要在类定义中声明,在类外进行初始化,为其分配内存空间,存在全局变量区
静态成员是所有对象共享的,所以不能在静态方法里访问非静态的元素;
非静态方法可以访问类的静态成员,也可以访问类的非静态成员;
原因:实例化的对象存放在局部变量区,而类的静态成员存放在全局变量区;
静态方法也可以使用一个普通方法的调用语法来调用,但建议不要这么做,那会让代码变得更糟糕!
版权声明:本文为shihuangdeng898原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。