C++ static关键字再理解
问题来源
在复习单例模式的时候,我看到了网课上给的以下示例代码:
1 | class A { |
我不明白为什么反复调用getInstance()并不会创建新的A的对象,返回的一直是第一次调用时创建的a;
解答
通过查阅资料得知了:
在函数内声明的static局部变量的生存期也是整个源程序,但其作用域任然和局部变量相同,只是在函数内部可见,退出函数后,尽管变量存在,但是不能使用,下次调用函数的时候,这个局部变量不会再初始化。
用一个例子来解释:
1 |
|
因为在局部变量count是static的,它的生命期是整个程序,并且只会在第一次调用func的时候初始化。