我们可以有这样的一种想法,就是我们去修改这个变量的值的时候呢,可以把这个值先存起来,不改变原始值,等到需要的时候再改变。
源码:
#include <iostream>
class Manager {
int* data; // 指向要管理的整数的指针
int temp; // 用于存储待设置的新值
public:
// 构造函数,接收一个指向整数的指针
Manager(int* num) : data(num), temp(0) {}
// 设置方法,只记住新的值,但不立即更改
void set(int newValue) {
temp = newValue; // 将新值存储在 temp 中,但不更改 data 指向的值
}
// 完成方法,将 temp 中的新值应用到 data 指向的变量
void finish() {
if (data != nullptr) { // 确保 data 不是空指针
*data = temp; // 现在将 temp 中的值赋给 data 指向的变量
}
}
};
int main() {
int a = 20;
Manager s(&a);
std::cout << "Before set: " << a << std::endl; // 打印 20
s.set(30); // 调用 set,但 a 的值不会立即改变
std::cout << "After set before finish: " << a << std::endl; // 打印 20