繁体   English   中英

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

[英]C++ Accessing Public Members of Class with a Variable

我需要通过局部变量调用已定义(公共)类的成员,我想知道如何实现。 我的问题是,要在类中调用哪个变量取决于一系列值,因此我确实需要使用变量来调用成员,而不是显式键入其名称。 例如:

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

  1. VariableStem_One
  2. VariableStem_Two
  3. VariableStem_Three
  4. VariableStem_Four
  5. VariableStem_Five

我的代码当前生成一个字符串,其内容等于上述五个术语之一-现在我只需要调用该成员变量-我可以间接这样做吗? 因此,我有一个名为“ VariableKey”的变量,其内容等于上述五个变量之一-我要进行以下调用:

Assumptions.VariableKey

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

这也是我实际问题的抽象/简化-可能值的数量更像是75,所以我希望避免对每个变量进行编码(如果可能)。

提前致谢!

您不能直接在C ++中做到这一点。 一种更普通的方法是进行枚举,以指示要使用的变量,并进行设置。 然后,您将得到一个值的数组/向量,并且枚举器充当该容器的索引。

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

您要尝试的操作称为“反射” ,而C ++对此没有本机支持。 您可以考虑通过library添加它,但是将“ Stem”成员变量放入字符串映射中以使其倍增会更容易。

您应该在Assumption类中添加选择方法,并以键作为输入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM