怎样调用到静态函数解决办法
怎样调用到静态函数
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()函数中总是调用的void sta(),而不是static sta(),该怎么弄呢
------解决方案--------------------
C/C++是不可能实现引用根本没声明的东西的。你调用sta的时候静态的sta根本还都不存在。
------解决方案--------------------
void ex();
extern void sta();//这句去掉,然后将静态成员函数的定义放到ex前面
------解决方案--------------------
extern 这个不是全局函数么?!静态函数不是static么?!
------解决方案--------------------
通过参数传递得到对象名 然后再对对象名调用
------解决方案--------------------
简单,声明一个命名空间不就得了么,2个命名空间不冲突啊
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()函数中总是调用的void sta(),而不是static sta(),该怎么弄呢
------解决方案--------------------
C/C++是不可能实现引用根本没声明的东西的。你调用sta的时候静态的sta根本还都不存在。
------解决方案--------------------
void ex();
extern void sta();//这句去掉,然后将静态成员函数的定义放到ex前面
------解决方案--------------------
extern 这个不是全局函数么?!静态函数不是static么?!
------解决方案--------------------
通过参数传递得到对象名 然后再对对象名调用
------解决方案--------------------
简单,声明一个命名空间不就得了么,2个命名空间不冲突啊