dim private public static_C++关键字之static

247f7c97403a9ca36153c9d209299572.png

static关键字的用途主要分以下几种:

  1. 静态全局变量(类外)
  2. 静态局部变量(类外)
  3. 静态函数(类外)
  4. 静态成员函数(类内)
  5. 静态成员变量(类内)

静态全局变量(类外):

代码示例:

int 

使用方法:函数外,文件内,修饰变量

内存:静态全局变量存储在全局数据区

作用域:静态全局变量的作用域是声明该变量的整个文件,离开这个文件,该变量不能使用

与全局变量的区别:全局变量可以在不同文件中共享,但静态全局变量只能在声明变量的文件中使用

静态局部变量(类外):

int 

使用方法:函数内,修饰变量

内存:静态局部变量存储在全局数据区

作用域:静态局部变量的作用域是在函数内

与普通变量的区别:

  • 普通局部变量存储在栈中,函数结束,变量就会被释放。
  • 静态局部变量在第一次使用时,在全局数据区分配该变量,直至程序结束,该变量才会被释放。

用途:函数中某个变量的执行结果可以保存到函数下次被调用的时候

静态函数(类外):

static 

使用方法:在文件内,修饰函数

内存:静态函数和普通函数一样,都存储在代码区

作用域:静态函数的作用域是在当前文件内

与普通函数的区别:

  • 普通函数可以在其他文件内使用
  • 静态函数只能在当前文件内使用

用途:函数中某个变量的执行结果可以保存到函数下次被调用的时候

静态成员函数(类内):

class 

使用方法:在类内,修饰成员函数

内存:静态成员函数存储于代码区

作用域:静态成员函数通过类的方式调用,如TestClass::testFun()

与普通成员函数的区别:

  • 普通成员函数可以通过对象来调用,但静态成员函数只能通过类的方式调用
  • 普通成员函数有一个隐式参数,this,指的是当前对象,但静态成员函数没有该参数,因为静态成员函数是所有类共享的函数。

用途:单例模式可以通过静态成员函数实现。

静态成员变量(类内):

class 

使用方法:在类内,修饰成员变量

内存:静态成员变量存储于全局数据区

作用域:静态成员变量只能在类的方式调用

与普通成员变量的区别:

  • 普通成员变量存储在堆中或栈中(根据该对象实例方式决定),与所在的对象的生命周期保持同步。普通成员变量是属于对应的对象。
  • 静态成员变量存储于全局数据区,第一次使用时在全局数据区创建,直至程序结束。静态成员变量可供类的所有对象共享。

用途:设置相同类不同对象之间的共享变量。

总结

1b21f6ef81a9b8a72e8b87471e7fa665.png

关注微信公众号"二进制空间",与作者进行交流,并会免费分享从网络上收集整理的上百本C++电子书和全套C++视频学习资料

http://weixin.qq.com/r/zC3bw83EWJAnrYmg93je (二维码自动识别)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值