是因为静态函数隐藏了全局函数吗
s2.cpp里
#include <iostream>
using namespace std;
void ex();
extern void sta();
void ex()
{
cout << "ex()" << endl;
sta();
}
static void sta()
{
cout << "static::sta()" << endl;
}
s1.cpp里
#include <iostream>
using namespace std;
extern void ex();
void sta()
{
cout << "::sta()" << endl;
}
int main()
{
ex();
sta();
system("pause");
return 0;
}
运行结果是
ex()
static::sta()
::sta()
可见ex()函数中总是调用的是static sta(),怎样调用全局函数sta呢
[解决办法]
没有编写类,为什么要使用静态函数?
[解决办法]
你在s1.cpp中都没有去包含引用s2.cpp这个文件。。。什么全局不全局。。。
[解决办法]
调用前加::即可调全局的
另外static函数是普遍存在的,以表明该函数只可以被本CPP的函数调用
[解决办法]