【发布时间】:2018-06-06 06:35:02
【问题描述】:
MQTT::Client<MQTTNetwork, Countdown> client(mqttNetwork);
与更传统的client(mqttNetwork); 或类似MQTTNetwork *mqttNetwork = new mqttNetwork(); 相比,有人可以解释这里正在做什么吗?
我还试图完成的是将该行代码修改为我可以类似于MQTTNetwork *mqttNetwork = new mqttNetwork(); 进行初始化的内容,以便我可以从循环内部为指针分配一个新对象,因为将使用此代码在具有无限循环的嵌入式应用程序中,对象需要在循环迭代之间持续存在。
【问题讨论】:
-
client(mqttNetwork);比client(mqttNetwork);更传统吗? -
因为它前面有整个
MQTT::Client<MQTTNetwork, Countdown>部分,我无法弄清楚它的含义。 -
这就是你要声明的变量的类型,就像
MQTTNetwork*是mqttNetwork的类型一样。顺便说一句,您使用指针和手动内存分配的理由是没有实际意义的。您不需要指针即可分配新对象。大大简化了,但原则上是一样的,你也不需要指针来做类似int a=3; a = 5; -
关于不需要使用指针的好处,我想我有点累了。无论如何,感谢您和 KorbenDose 的回答,这个问题现在变得更加清晰。
-
client(mqttNetwork);将是语法错误(除非client已定义)