首页 新闻 会员 周边

C++项目中为什么会有一些static的函数,但是不存储值。

0
[已解决问题] 解决于 2023-06-28 16:55

起初的static函数出现的时候在我印象里是为了保证临时值一直存在,同时可以查询类中的静态变量。但是最近发现有些项目中会有函数是静态的但是没有存储任何值,可能就是写了一个注册表的操作,为什么要这样写呢?

未全知的主页 未全知 | 菜鸟二级 | 园豆:383
提问于:2023-01-12 14:52
< >
分享
最佳答案
1

static 静态关键字,一般对我来说是用来写单例的(笑
一般是用来放所有类成员共享的数据,也有时候是用来放一些不需要对象但又会频繁引用的方法

也有时候是用来存放一些会一直存在的数据的,反正定义就是那么个定义,具体用法看个人

奖励园豆:5
轩先生。 | 菜鸟二级 |园豆:418 | 2023-03-06 16:17

最近时间久了,发现我们用的代码基本如果使用比较多的函数会写在一个全局的对象里,在主函数跑起来的时候这个对象就创建在stdax.h中,用到就调用这个对象的方法。单例当然也是有的。
可能是以前自己写东西不怎么用到,实际在代码里边看到了就会很迷茫,还是要努力的啊

未全知 | 园豆:383 (菜鸟二级) | 2023-05-21 21:16
其他回答(2)
1

static 在函数上,可以限定作用域,只能在该文件中使用

秋壶冰月 | 园豆:5903 (大侠五级) | 2023-01-13 10:50

看到了一些对应的代码,感觉是在这个文件写了static的函数,然后同文件有非static的函数调用他,最后在外边调用,感觉好奇怪

支持(0) 反对(0) 未全知 | 园豆:383 (菜鸟二级) | 2023-01-14 15:10

@未全知: 不加static,是可以都可以访问的

支持(0) 反对(0) 秋壶冰月 | 园豆:5903 (大侠五级) | 2023-01-16 14:12
1

static有多重作用。

  • 在类内修饰变量,是限制变量的存储位置(保存在静态区),所有类对象共享一份数据。
  • 在类内修饰函数,是限制函数的使用方法,标明该函数不需要使用this指针,不会访问类内成员变量。可以通过类名::函数名进行调用。
  • 在类外,是限制变量/函数的访问域。仅允许在当前文件内访问变量/函数。
GiraKoo | 园豆:430 (菜鸟二级) | 2023-02-22 14:19

晓得了,还是需要继续努力

支持(0) 反对(0) 未全知 | 园豆:383 (菜鸟二级) | 2023-05-21 21:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册