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

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

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

保存类的源码

 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 @ 2020-06-01 12:36  过客匆匆,沉沉浮浮  阅读(126)  评论(0)    收藏  举报