static的作用

一、静态局部变量

  1.static修饰的局部变量,不像其他局部变量一样函数退出时就消失,它的存储于全局区,生命周期是整个文件;

  2.但是静态局部变量的作用域还是和其他局部变量一样在函数中,只能在该函数中调用,退出函数后还存在但不能使用;

  3.在声明时如果没有初始化,编译器会将它自动初始化为0。

二、静态全局变量:

  1.静态全局变量只能在本文件中访问,其他文件不可访问;

  2.其他文件中可以定义与它同名的变量,互不影响。

三、静态函数

  1.静态函数只能在声明它的文件中可见,其他文件中不能使用该函数;

  2.其他文件中可以定义与它同名的函数,互不影响。

四、静态属性

  1.static修饰的属性称为静态属性,静态属性属于类而非某个对象,无论实例化了多少个对象,它只有一份;

  2.任何一个该类的对象都可以对它操作,一个对象改变了它的值,其他对象中的也会改变;

  3.所以,就算没有实例化对象,也可以直接操作静态数据成员;

  4.相当于加了一个类约束和访问控制属性限制的全局变量,表示只能在这个类里面使用(作用域),它存储(生命周期)在全局区;

  5.静态属性必须在类外定义和初始化;

  5.和普通数据成员一样,静态数据成员也遵从public, protected, private访问规则;

  6.初始化格式:数据类型 类名::静态成员名=值 (int Class::num=0);

  7.访问方式:① 类对象名.静态成员名 (cla.num);

        ② 类类型名::静态成员名 (class::num);

五、静态成员函数

  1.static修饰的函数称为静态函数,静态函数也是属于整个类,而不是某个对象;

  2.静态成员函数没有隐藏this指针;

  3.它无法访问属于类对象的非静态属性,也无法调用非静态成员函数;

  4.只能访问静态属性  和  调用静态函数;

  5.态函数其实是加了类约束 及 访问控制属性限制的 全局函数。

 

posted @ 2019-10-09 19:22  一场雨  阅读(2400)  评论(0编辑  收藏  举报