You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使C++变量永久成为另外两个变量的和并随其动态变化?

实现动态跟随两变量和的C++方案

普通的int变量做不到自动更新,因为mySum = myInt + myInt2只是把当前时刻的和值拷贝到mySum的内存里,后续原始变量变化不会同步到mySum。下面是几种可行的实现方式:

1. 使用Lambda表达式(轻量快捷)

用Lambda捕获两个变量的引用,每次需要求和时调用这个Lambda,相当于动态计算当前的和:

#include <iostream>

int main() 
{
    int myInt = 3;
    int myInt2 = 5;

    auto getSum = [&]() { return myInt + myInt2; }; // 捕获外部变量的引用

    std::cout << getSum() << std::endl; // 输出8

    myInt = 10;

    std::cout << getSum() << std::endl; // 输出15

    myInt2 = 30;

    std::cout << getSum(); // 输出40
}

2. 自定义封装类(模拟"动态变量")

创建一个类保存两个变量的引用,通过重载类型转换运算符,让这个类的对象可以像普通int变量一样使用,每次访问时自动计算当前的和:

#include <iostream>

class DynamicSum {
private:
    const int& num1;
    const int& num2;
public:
    // 构造函数绑定两个变量的引用
    DynamicSum(const int& a, const int& b) : num1(a), num2(b) {}

    // 重载int类型转换,访问时自动计算和
    operator int() const {
        return num1 + num2;
    }
};

int main() 
{
    int myInt = 3;
    int myInt2 = 5;

    DynamicSum mySum(myInt, myInt2);

    std::cout << mySum << std::endl; // 输出8

    myInt = 10;

    std::cout << mySum << std::endl; // 输出15

    myInt2 = 30;

    std::cout << mySum; // 输出40
}

3. 直接编写求和函数(最基础)

如果不需要"变量"的形式,直接写一个返回两数和的函数,每次输出时调用即可:

#include <iostream>

int getSum(const int& a, const int& b) {
    return a + b;
}

int main() 
{
    int myInt = 3;
    int myInt2 = 5;

    std::cout << getSum(myInt, myInt2) << std::endl; // 输出8

    myInt = 10;

    std::cout << getSum(myInt, myInt2) << std::endl; // 输出15

    myInt2 = 30;

    std::cout << getSum(myInt, myInt2); // 输出40
}

内容的提问来源于stack exchange,提问作者linger1109

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 22:24:31