c++ static 关键字总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ static 关键字总结相关的知识,希望对你有一定的参考价值。

1. 静态全局变量

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

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

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

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

 

2. 静态局部变量

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

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

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

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

 

3.静态函数

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

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

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

 

4.静态数据成员

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

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

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

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

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

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

 

5.静态成员函数

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

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

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

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

        

 

以上是关于c++ static 关键字总结的主要内容,如果未能解决你的问题,请参考以下文章

c++ static 关键字总结

C++特性总结

C++中的static关键字的总结

C++中的static关键字的总结

C++中static关键字作用总结

C++中static关键字作用总结