2.2静态成员函数1. 静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其它全局名字冲突的可能性;2. 可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能;
关于静态成员函数,可以总结为以下几点:
? 出现在类体外的函数定义不能指定关键字static;
? 静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;
? 非静态成员函数可以任意地访问静态成员函数和静态数据成员;
? 静态成员函数不能访问非静态成员函数和非静态数据成员;
? 由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;
? 调用静态成员函数,可以用成员访问操作符(.)和(->)为一个类的对象或指向类对象的指针调用静态成员函数,也可以直接使用如下格式:
<类名>::<静态成员函数名>(<参数表>)调用类的静态成员函数。
当一个源程序由多个源文件组成时,根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。
1 内部函数(又称静态函数)
如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。
定义一个内部函数,只需在函数类型前再加一个“static”关键字即可:
static 函数类型 函数名(函数参数表)
关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。
使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。
2 外部函数
外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数,也就是我们最常用的函数形式。
原文:http://www.cnblogs.com/fengkang1008/p/4652238.html