保存变量并且在程序结束时候还原的方法

基本思路:在操作前构造一个类保存当前变量状态,在类析构中还原数值。

优势:即使程序异常退出,也会调用类的析构函数,变量状态依然可以还原。

保存类的源码

复制代码
 1 template<typename Type>
 2 class Save
 3     {
 4     protected:
 5         Type &_var;
 6         Type _save_value;
 7     public:
 8         Save(Type &elem):_var(elem),_save_value(elem){}
 9         ~Save(){_var = _save_value;}
10     };
复制代码

例子:

我们创建一个函数

void start(int &x)
    {
        Save<int> temp(x);
        x=3;
        std::cout<<"start x:"<<x<<std::endl;
    }

在主函数中调用

int main()
    {
        int x=2;
        start(x);
        std::cout<<"main x:"<<x<<std::end;
    }

运行

start x:3

main x:2

 

posted @   过客匆匆,沉沉浮浮  阅读(120)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示