c++ static 关键字总结

  1. 静态全局变量

在全局变量之间加上static关键字,就被定义为静态全局变量。

特点:在全局数据区分配内存

未初始化则被自动初始化为0

在声明它的文件内可见,在声明它之外的文件不可见,其他文件中可使用同名变量

  1. 静态局部变量

在局部变量前加上static关键字,就被定义为静态局部变量

特点:在全局数据区分配内存,但是作用域为局部作用域

一般在声明时初始化,只能被显示初始化一次,以后调用该函数时不被初始化

若未显示初始化,初始化为0

3.静态函数

在函数返回类型前加上static关键字,就被定义为静态函数

特点:只在声明它的文件中可见,在其他文件中不可见

其他文件中可以有与之同名的函数

4.静态数据成员

在类数据成员声明前加上static关键字,就被定义为静态数据成员

特点:无论类对象有多少个,静态数据成员只有一份拷贝,被所有对象共享访问,只分配一次内存,值可以更新

静态数据成员储存在全局数据区,在定义时要分配空间,所以不能在声明时定义(赋值),可以在声明第一个对象时初始化,格式为

<数据类型><类名>::<静态数据成员名>=<值>,该初始化可以放在类定义里,这样类声明对象时即可初始化

静态数据成员遵守public,private,protect访问规则

同全局变量相比,可以实现信息隐藏,而且由于没有进入全局名字空间,所以不会有命名冲突

5.静态成员函数

在类成员函数前加入static关键字,就被定义为静态成员函数

特点:为类服务而不是为某个对象服务,是类的内部实现,属于类定义的一部分

由于静态成员函数不与类对象联系,所以不存在缺省的this指针,所以也无法访问非静态数据成员,也无法访问非静态成员函数

除了使用成员访问操作符(.和->)外还可以直接访问静态成员函数,格式为<类名>::<静态成员函数名>(<参数表>)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引言静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。静态变量...
    无云清晨阅读 1,565评论 0 1
  • C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通...
    yangqi916阅读 398评论 0 0
  • 一直使用static,但没用总结过,时间一长概念总有点模糊,趁着这次机会总结一下。c++中:C++中static有...
    被代码淹没的小伙子阅读 532评论 0 0
  • 几种语言的特性 汇编程序:将汇编语言源程序翻译成目标程序编译程序:将高级语言源程序翻译成目标程序解释程序:将高级语...
    囊萤映雪的萤阅读 2,972评论 1 5
  • 百年孤独是我读过的第一本世界名著,为了这个名字,我从图书馆借了来,可是第一句:多年以后,面对行刑队的枪口中,奥尔良...
    黑色玫瑰d阅读 3,151评论 22 78