static的作用和用法
static是一种用于标识变量、函数、方法、类的关键字,其使用方式和作用有很多,可以根据不同的情况进行灵活的应用。
一、变量中的static
1.1静态变量
所谓静态变量,就是在程序运行之前就已经分配好了内存空间,并且在整个程序运行期间都保持不变。静态变量一般使用static关键字进行定义,并且必须初始化,可以通过类名直接访问,也可以通过对象进行访问,但是对于静态变量修改是通过类名进行的。
静态变量的作用:
1) 可以用于在多个对象之间共享数据。
2) 静态变量的值一般都是固定的,在编译时就已经分配好了内存空间,当该类的对象被创建时,不会再为静态变量分配内存空间,因此可以减少内存使用量。
3) 在一些数据量比较大的项目中,如果某个变量不需要变化,可以使用静态变量来提高程序的运行效率。
static修饰的变量 所谓静态常量,就是在程序中定义一个不可修改的常量变量。不可修改之意是指一旦对该变量进行赋值操作之后,该变量的值就会被锁定,无法再次修改。静态常量一般使用final关键字进行修饰,并且使用static修饰,一旦被创建就不能被再次修改,静态常量一般被声明在类中,外界可以通过访问常量名来获取常量值。
1) 可以用于一些常亮不变的场景,如π、e等。
2) 可以提高程序的安全性和代码的可维护性。
函数使用static修饰后,就可以将函数声明为静态函数。静态函数一般只能够被同一文件中的其他函数调用,其作用域也只能在它所在的文件中,其他文件中不能使用,它与普通函数的区别在于,它没有this指针,也就是说,它与类的任何实例都没有关系,这样就可以节省很多内存空间。
1) 可以传递内部函数参数,使函数参数一直保持下去。
2) 可以定义不受类对象影响的公共服务函数。
3) 可以限制某些函数只能被同一个类中的函数调用,而对外隐藏。
定义为静态类的类,就可以使用该类中定义的静态成员变量和静态成员函数。静态类可以在不创建实例的情况下进行访问,也可以定义内部的静态变量和方法,其作用就是提供一些全局的服务能力,而其数据成员和方法并不依赖于类的实例。
1) 静态类可以实现分组的概念,使类中的成员能够在静态上下文中被访问,进而可以简化访问类成员的方式。
2) 可以通过静态类实现一些实用、全局的方法或静态变量。
3) 静态类可以在很大程度上提高程序的执行速度和效率,因为静态类的成员可以在程序中被共享。
四、namespace中的static
在C++中,namespace中的static属性可以限制变量和函数的可见性,使之只在当前文件
中使用,而不会被外部文件调用。当将一个变量或函数定义为static,会使之成为一个内部链接的标识符,在编译器中只能用于该文件中的函数访问,其他的文件是无法访问的。
1) static属性可以限制在命名空间中的范围,使之不受外部调用的影响。
2) 可以防止函数名、变量名及类名的冲突,避免程序中出现不必要的错误。
3) 在多个文件中使用相同的命名空间时,可以防止命名冲突。
综上所述,static的作用和用法非常广泛,无论是在变量、函数、类、命名空间等各个方面都有着重要的作用。在编写程序时,我们可以根据需要的场景来灵活运用,使程序更加优化和高效。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论