回想一下变量的先前值?

问题描述

我对C ++有点陌生,我讨厌在需要将先前值存储在另一个变量中的情况下运行。所以我的问题是,我是否可以使变量在某种意义上存储两个值。我希望我能够调用以前存储的值并将其用于其他功能。

ex) 当前方式

os.system("echo 'q' >stop") 

我想做什么

int x1 = 5;
int x2 = x1 + 5;
int diff = x2 - x1;

解决方法

以下是适合您特定用例的最小类:

struct Int {
    int val = 0,old_val = 0;
    Int(int i) : val(i) {}
    operator int() { return val; }
    void operator=(int i) { old_val = std::exchange(val,i); }
    int old() { return old_val; }
};

,您可以这样使用它:

Int x = 5;
x = x + 7;
int diff = x - x.old();  // diff is 7

这里是demo

请注意,此类非常少,在实践中,您将希望使Int成为int的模型,并且仅具有记住先前值的附加属性。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...