C ++使用变量访问类的公共成员

时间:2013-06-18 20:39:26

标签: c++ class members

我需要通过局部变量调用已定义(公共)类的成员,我想知道如何才能这样做。我的问题是在类中调用哪个变量依赖于一系列值,所以我真的需要使用变量来调用成员而不是明确地输入它的名字。例如:

我有类假设,有许多成员变量(所有感兴趣的都是double类型)。因此,假设我想在假设中调用五个潜在变量,但只有一个:

  1. VariableStem_One
  2. VariableStem_Two
  3. VariableStem_Three
  4. VariableStem_Four
  5. VariableStem_Five
  6. 我的代码当前生成一个字符串,其内容等于上述五个术语之一 - 现在我只需要调用该成员变量 - 我可以间接地这样做吗?所以我有一个名为“VariableKey”的变量,其内容等于上面五个变量之一 - 我想进行以下调用:

    Assumptions.VariableKey

    但是将VariableKey解释为间接引用。

    这也是我真实问题的抽象/简化 - 可能值的数量更像是75,所以我想尽可能避免编码每个变量个体。

    提前致谢!

3 个答案:

答案 0 :(得分:2)

你不能直接在C ++中这样做。更常规的方法是使用枚举来指示要使用的变量,并设置该变量。然后你有一个数组/值向量,枚举器充当该容器的索引。

您还可以创建一个将字符串映射到特定值的映射,但这可能会增加额外的开销。

答案 1 :(得分:0)

您尝试做的事情称为"reflection",而C ++没有本机支持;你可以看一下通过library添加它,但是把你的“Stem”成员变量放到map的字符串中会更容易加倍。

答案 2 :(得分:0)

你应该在Assumption类中添加一个选择方法,把键作为输入。