保存变量并且在程序结束时候还原的方法
基本思路:在操作前构造一个类保存当前变量状态,在类析构中还原数值。
优势:即使程序异常退出,也会调用类的析构函数,变量状态依然可以还原。
保存类的源码
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

浙公网安备 33010602011771号