static (msdn about keyword static translation)

static (变量,函数,数据成员,函数成员)默认情况,一个对象或是变量被定义在所有块(block)之外,他拥有static的声明周期和外部连接(external linkage)静态的声明周期意味着变量在程序开始的时候被创建,在结束的时候被销毁,而外部连接意味着变量的名字在文件之外也是可见的,条件是:在该文件中该变量被声明过。相反的,内部链接意味着名字在文件外部不是可见的,即使该变量在那声明过了;

 static可以再一下的环境

1,当你生一个变量或是函数在一个文件范围,它可能是全局区,或是命名空间,static指定该变量或是函数具有内部链接的特性,当你声明一个变量,该变量有静态声明周期且编译器把它初始化为0,除非你额外的定义他


2,当你声明一个变量或是函数时,static指定该变量保持它的state(标志,状态),在每次调用之间


3当你声明一个数据成员,static指定一个成员的复制版本为所有该类的实例共享,一个static的数据成员必须定义在文件范围(类外定义么)一个 const  整型,你可以让他有个初始值

4当你声明一个函数成员,在用户自定义的类中,static指定这个函数被该类的所有实例共享,一个静态的函数成员不能访问一个实例的成员,因为该函数没有该实例的 *this 指针,我们知道的成员函数都是通过它调用的,如果你向去访问一个实例,你得去声明一个参数,它可以是实例的引用或者是指向它的指针

5你不能声明一个 union 的成员 static ,然而一个全局化的没有名字的union 却必须要 显式 初始化 static


下面是关键字 static functions 的翻译

它是被考虑在类作用域,与非static的相对照,这些函数没有隐身 *this 参数,因此他们仅仅能用静态的数据成员,枚举 或者是直接嵌套类型(什么鬼)


以上内容都是自己翻译,估摸着,80%,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值