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

问题描述

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

作为 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 (将#修改为@)