#include <iostream>
//局部静态变量static local variable:生存期相对于整个程序的生存期,作用范围限制在当前作用(eg: if语句,函数..)的局限内
//声明一个变量需要考虑:变量的生存期(在内存实际存在的时间长度)和变量的作用域(访问变量的范围)
//Singleton :单例类 只存在一个实例的类
class Singleton
{
//private:
// static Singleton* s_Instance;
public:
static Singleton& Get()
{
static Singleton Instance;//static在这里也是延长了生命周期,返回的是引用对象,没有延长会崩溃
return Instance;
}
void Hello(){}
};
//Singleton* Singleton::s_Instance=nullptr; //实例的外部定义
//int i=0;
void Function()
{
static//加上static延长生命期到程序终止
int i=0;//如果在函数内定义int i=0每次调用函数都是在重新定义int i,因此,如果调用五次,结果都是一样的
i++;
std::cout<<i<<std::endl;
}
int main()
{
for (int k=0; k<5; k++) {
Function();
}
Singleton::Get().Hello();
std::cin.get();
}
建议先不写单例,先理解function,再理解单例!!主要就是避免函数的“毁灭”啦,延长生命周期