精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
static void Show() {cout<<"call Base1::Show()" << endl;}};
Base2::ob_d.show();
Base2::Show()
在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中使用,不能被其它文件使用。
定义静态函数的好处:静态函数不能被其它文件所用;其它文件中可以定义相同名字的函数,不会发生冲突。
静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。--你说的这个是C语言的形式。在类里的静态成员函数,只要包含了类的头文件,就可以用了。
注1、C语言形式静态函数:函数返回类型前加static,就形成静态函数。静态函数不能被其它文件所用;其它文件中可以定义相同名字的函数,不会发生冲突。
注2、C++形式静态函数:类里成员函数返回类型前加static,就形成静态函数。这类函数类似全局函数,只要包含了此类的头文件,就可以使用。用类名加域访问操作符::来访问。该类函数不能访问类的实例成员,只能访问类的静态成员。
注3、C++形式静态函数不能用实例对象来调用静态函数,比如
class CA
{
static void mya();
}
CA aa;
aa.mya();//这是错误的。
注4用法:就象写C语言模式代码时离不开全局函数一样,写C++代码时也是离不开静态函数的,比如某个配置解析过程要让所有类都能用上,哪这个过程就要定义为静态函数。