C++:局部静态变量在类中的使用

#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,再理解单例!!主要就是避免函数的“毁灭”啦,延长生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值