static关键字
来源:互联网 发布:php array key 编辑:程序博客网 时间:2024/06/09 17:02
面向过程设计中的static
1、静态全局变量
a 该变量在全局数据区分配内存;
b 未经初始化的静态全局变量会被程序自动初始化为0;
c 静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的,其它文件中可以定义相同名字的变量,不会发生冲突。
2、静态局部变量
a 该变量在全局数据区分配内存;
b 在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;每次的值保持到下一次调用,直到下次赋新值;
c 一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;
d 它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
3、静态函数
a 它只能在声明它的文件当中可见,不能被其它文件使用。其它文件中可以定义相同名字的函数,不会发生冲突。
面向对象的static关键字(类中的static关键字)
1、静态数据成员a 静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共用。它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它
b 静态数据成员存储在全局数据区。静态数据成员定义时要分配空间,所以不能在类声明中定义。语句int Myclass::Sum=0;是定义静态数据成员;
c 静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其它全局名字冲突的可能性;可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能;
2、静态成员函数
a 静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
b 非静态成员函数可以任意地访问静态成员函数和静态数据成员;
c 静态成员函数不能访问非静态成员函数和非静态数据成员;
d 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;
- static关键字
- static关键字
- 关键字STATIC
- 关键字STATIC
- static关键字
- static 关键字
- static关键字
- static关键字
- static关键字
- static关键字
- static 关键字
- Static 关键字
- static关键字
- Static关键字
- static关键字
- static关键字
- static关键字
- 关键字:static
- VC++6.0、VS2003、vs2005、vs2008程序依赖DLL
- struts2中用ajax问题
- Oracle中没有 if exists(...)
- 交通灯管理系统
- What do 'statically linked' and 'dynamically linked' mean?
- static关键字
- ubuntu10.10安装rpm包遇到的一点问题及解决办法
- jBPM4实战系列(二)jBPM4.4+ssh 整合配置及完整实例
- MySQL索引设计及优化
- 一个非常大的投机股票的帮助
- 图片加水印
- 人的核心竟争力有时超过一半是来自重要而不紧急的事情
- getopt函数
- OllyDbg实用技巧六则