微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以将类成员变量作为不同类中的变量?

如何解决是否可以将类成员变量作为不同类中的变量?

第一次来这里,到目前为止,我已经设法用谷歌解决了我的问题,但这次不是......

作为 Arduino 项目的一部分,我需要一个菜单​​对象(类成员)来显示(和编辑)从参数对象(不同的类成员)中获取的变量。目前我可以在菜单对象的初始化中使用参数对象变量并显示它。但是,如果我编辑菜单对象,它不会反映在参数对象中 - 我假设代码只是在初始化时将对象复制到内存中 - 是有道理的。我尝试过使用指针,但我缺乏理解,而且似乎发生了同样的事情。

这是一些简化的代码 - 请注意,目前我使用的是公共变量,为简单起见没有使用构造函数,这可能会改变

class Parameter {
  public:
    const char* plabel; 
    uint16_t value;
};

class SubMenu {
  public:
    const char* mlabel;
    uint16_t valueShown;
};

Parameter parameter[] {
  {"Para 1",123},{"Para 2",456}
};

Parameter *parameterP[] {parameter};

SubMenu mainMenu[] {
  {"Menu item 1",parameterP[0]->value},{"Menu item 2",parameterP[1]->value}
};

void setup() {
  // put your setup code here,to run once:
  Serial.begin(9600);
  Serial.println(mainMenu[0].valueShown);
  mainMenu[0].valueShown++;
  Serial.println(mainMenu[0].valueShown);
  Serial.println(parameterP[0]->value);
  
}

void loop() {
  // put your main code here,to run repeatedly:

}

你可以想象串行输出是:

123
124
123

如果有人可以帮助我使这段代码按预期工作(我猜是使用指针?),我将不胜感激。

谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。