gpt4 book ai didi

c++ - 访问 C 中的类变量(Arduino Timezone 库)

转载 作者:行者123 更新时间:2023-11-30 17:13:49 24 4
gpt4 key购买 nike

我正在尝试使用 Arduino 的时区库。 https://github.com/JChristensen/Timezone/blob/master/examples/Clock/Clock.pde

这里,时区是全局初始化的,然后在loop()中打印

//Line numbers used for reference. Not part of code.
1.TimeChangeRule myDST = {"EDT", Second, Sun, Mar, 2, -240}; //Daylight time = UTC - 4 hours
2.TimeChangeRule mySTD = {"EST", First, Sun, Nov, 2, -300}; //Standard time = UTC - 5 hours
3.Timezone myTZ(myDST, mySTD);

我想根据用户输入更改 myTZ(dst,std)。这将发生在函数内部。但是当我尝试这样做时,即使在第 3 行之后

myTZ(mySTD, mySTD);

我收到错误

no matching function for call to 'Timezone::Timezone()'

我不太熟悉类(class)。如何使用 myTZ 作为全局实例,并在其他函数中设置/更改/使用它?

最佳答案

好的,我已经查看了提供的链接中的Timezone 定义。似乎一旦使用 TimeChangeRule 创建对象,就无法再从代码中更改这些对象(除非通过调用 readRules ,这不是您想要的)。因此,您可以像现在一样拥有 Timezone 对象:

Timezone myTZ(myDST, mySTD);

尝试修改它的函数可能是:

void tzObjectModifier(Timezone &rTZ) {
//perform all the operations(including reading user's input) to initialize newDST and newSTD TimeChangeRule objects
rTZ(newDST, newSTD);
//other additional statements
}

针对 myTZ 对象调用函数,例如:

tzObjectModifier(myTZ);

函数退出后,全局myTZ将包含您在函数内部设置的内容。

关于c++ - 访问 C 中的类变量(Arduino Timezone 库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30587551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com