c++ - 在 C++ 中是否有与此等效的东西

标签 c++

假设您定义了两个类:

class A {
    double a;
    A(double d)
    {
        a = d;
    }
};

class B {
    double b;
    B(A a)
    {
        b = exp(a.a);
    }
};

然后假设您希望有一个执行以下操作的 main:

A a(3.14);
B b(a);

print(b.b) // 23.1......

a.a = 2.71

print(b.b) // 15.1......

除了动态评估之类的东西之外,我不确定该怎么调用它。如果使用 C++ 可以做到这一点,它叫什么?

很抱歉这个问题含糊不清,但我不知道如何更好地描述它。

最佳答案

您似乎想在B 中存储A 的引用。工作示例:

#include <iostream>
#include <cmath>

struct A 
{
    double value;
};

class B
{
    A& a_;
public:
    B(A& a) :a_(a) { }
    double value() {return std::exp(a_.value);}
};

int main()
{
    A a{3.14};
    B b(a);

    std::cout << b.value() << '\n'; // 23.1039

    a.value = 2.71;

    std::cout << b.value() << '\n'; // 15.0293
}

关于c++ - 在 C++ 中是否有与此等效的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57260280/

相关文章:

c++ - Visual Studio 2019中的C2011 'CMemDC' :'class'类型重新定义

c++ - 我们应该在带有 char *func(char *string) 的函数中返回什么?需要简要说明这与 c 中的 char[] 有何不同?

c++ - 关于 NULL 指针的段错误 C++

c++ - 是否需要 LD_LIBRARY_PATH(linux) 或 DYLD_LIBRARY_PATH mac

c++ - 改变字符指针的值

c++ - 遍历二维 vector

c++ - while(f) 没有按预期表现

c++ - Tensorflow Op : how to include libtensorflow_framework. 所以?

c++ - 更改 volatile const 的值 - G++ 与 Visual Studio 2019

c++ - winapi mouse_event 错误坐标