编程论坛
注册
登录
编程论坛
→
C++教室
全局函数和静态函数有没有区别?
chenkuanyi
发布于 2008-11-13 09:44, 5225 次点击
全局函数和静态函数,本人觉得是一样的,
大家怎么看?
8 回复
#2
newyj
2008-11-13 11:04
全局函数 是可以在 别的文件 中 使用的
而 静态函数 只能 在 本文件中 调用
#3
debroa723
2008-11-13 20:20
楼上说法有误,如类成员的静态函数,是可以在其它文件中调用到的.
个人认为静态函数是全局函数的一个子集.
#4
vfdff
2008-11-14 17:11
回复 3# 的帖子
类成员的静态函数 和全局函数作用域一样?
#5
debroa723
2008-11-14 19:33
可以看看单键的使用.
#6
中学者
2008-11-14 20:41
类的静态函数也是外部链接,但是作用域是受限于类中...
#7
蜗牛人生
2008-11-14 21:44
本人认为不一样
问题没那么简单,
对于全局函数可以在程序的任意地方调用,而静态函数如在类中定义为受保护型,则除了本身和友元函数中可用以外被能被任何函数调用,包括main函数。
#8
beyondlwm
2008-11-15 16:40
静态函数存放在静态区
全局函数放在栈上
回楼上:
不论什么函数,设置为protect以后,都是你说的情况,跟是否静态没关系
尽量避免使用全局函数,这样会把这个接口暴露给所有外部程序,从而有可能产生意想不到的结果
对于确实需要的全局函数,我们应该使用单件或者工具类静态函数替代。
#9
beyondlwm
2008-11-15 16:41
还有个问题就是,如果使用全局函数,如果函数名与使用的某个库函数重名 ,容易发生混淆。
1