怎样调用到静态函数

lifu119 2012-03-16 11:39:41
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(),该怎么弄呢
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifu119 2012-03-16
  • 打赏
  • 举报
回复
有什么方法吗,求教
lifu119 2012-03-16
  • 打赏
  • 举报
回复
对 我说反了 就是想调用全局的,但是调用成static的了[Quote=引用 4 楼 vanxeger_2 的回复:]

extern 这个不是全局函数么?!静态函数不是static么?!
[/Quote]
vanxeger 2012-03-16
  • 打赏
  • 举报
回复
extern 这个不是全局函数么?!静态函数不是static么?!
lifu119 2012-03-16
  • 打赏
  • 举报
回复
哦 我说反了 是怎么样调用到s1里的sta全局函数,本想调用它的[Quote=引用 2 楼 pengzhixi 的回复:]

void ex();
extern void sta();//这句去掉,然后将静态成员函数的定义放到ex前面
[/Quote]
pengzhixi 2012-03-16
  • 打赏
  • 举报
回复
void ex();
extern void sta();//这句去掉,然后将静态成员函数的定义放到ex前面
bluewanderer 2012-03-16
  • 打赏
  • 举报
回复
C/C++是不可能实现引用根本没声明的东西的。你调用sta的时候静态的sta根本还都不存在。
wopabe 2012-03-16
  • 打赏
  • 举报
回复
使用命名空间是个好习惯
无事所所 2012-03-16
  • 打赏
  • 举报
回复
简单,声明一个命名空间不就得了么,2个命名空间不冲突啊
woaigaoweina 2012-03-16
  • 打赏
  • 举报
回复
通过参数传递得到对象名 然后再对对象名调用

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧