普通函数与静态函数有什么区别?

tigerfox 2003-10-31 01:08:37

普通函数与静态函数有什么区别?



什么情况下使用静态函数合适。
...全文
148 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
panzhaoping 2003-11-03
  • 打赏
  • 举报
回复
成员静态函数没有this指针
而一般成员函数则不同
说这句的人,可以把所有分都给他
sunjx119 2003-11-01
  • 打赏
  • 举报
回复
成员静态函数没有this指针
而一般成员函数则不同
yisan 2003-11-01
  • 打赏
  • 举报
回复
确实错了,应该说不能被重写:)
robbie24 2003-11-01
  • 打赏
  • 举报
回复
to yisan(缺二):不是说这个,当然无法override(笑),是指static member functiong与继承的关系?
killme2008 2003-11-01
  • 打赏
  • 举报
回复
理解加深
ttlb 2003-11-01
  • 打赏
  • 举报
回复
up
yisan 2003-11-01
  • 打赏
  • 举报
回复
to robbie24(独行虾):
sorry,我没说清楚,我是说我前面的帖子错了.
robbie24 2003-10-31
  • 打赏
  • 举报
回复
... ?错了? 使用是一回事,继承是另一回事. 实质上也只是基类的子对象在调用而已.
这个与继承有关系?
dot99 2003-10-31
  • 打赏
  • 举报
回复
继承可以被overwrite XD

郑文君 2003-10-31
  • 打赏
  • 举报
回复
study
Sodier 2003-10-31
  • 打赏
  • 举报
回复
在一个程序理由可能会有多个文件,而在不同的文件里,有可能会出现函数名相同的函数(函数体不同),这是就用静态函数声明,使某函数只在该文件中有效,这样就能很好的避免函数重名。
fierygnu 2003-10-31
  • 打赏
  • 举报
回复
virtual和继承是两回事。virtual表示可以override。
yisan 2003-10-31
  • 打赏
  • 举报
回复
静态成员函数(和变量)属于类,不属于对象.

静态成员函数在标准里不能被继承(virtual 和 static 不能同时存在),VC7.0可以,GNU g++ 3.2不能通过.
loveghb 2003-10-31
  • 打赏
  • 举报
回复
static是可以被继承的!
fierygnu 2003-10-31
  • 打赏
  • 举报
回复
to robbie24(独行虾):“无法被派生类说继承”,这么说不对。派生类可以作为基类使用,也就可以使用其static函数。
anothervip 2003-10-31
  • 打赏
  • 举报
回复
学习
robbie24 2003-10-31
  • 打赏
  • 举报
回复
恩... ... static对于全局函数来说... 只在该文件内有效,与extern正好反一反,楼上已经说过了.
对于class的member function来说...是没有this指针的,所以不能操纵该class的任何非static data member.而且既然是static属性,就不参与继承了,即是无法被派生类说继承.

fierygnu 2003-10-31
  • 打赏
  • 举报
回复
就这些了。
tigerfox 2003-10-31
  • 打赏
  • 举报
回复
就这些吗?
fierygnu 2003-10-31
  • 打赏
  • 举报
回复
C语言,jollyqi10000(无敌旋风10000)对。
同样名称的静态函数在不同的模块文件里可以同时存在而不会导致重定义。
C++里zhusunme(一行)也对,当然是静态成员函数。
加载更多回复(2)

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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