【发布时间】:2016-11-29 20:33:46
【问题描述】:
我正在使用以这种方式声明方法的第 3 方库:
void nexLoop(NexTouch *nex_listen_list[]);
如果是单个 .cpp 文件,这是可行的:
NexButton b0 = NexButton(0, 1, "b0");
NexTouch *nex_listen_list[] =
{
&b0,
NULL
};
...
nexLoop(nex_listen_list);
完整的示例代码可以在这里看到:https://github.com/itead/ITEADLIB_Arduino_Nextion/blob/master/examples/CompText/CompText.ino
现在我将这个库合并到一个有单独的头文件和 c 文件的类中,这样:
MyNextion.h
#include "Nextion.h"
class MyNextion {
public:
MyNextion();
void loop();
private:
NexButton *b0;
NexTouch *nex_listen_list[];
}
MyNextion.cpp
#include "MyNextion.h"
MyNextion::MyNextion() {
b0 = new NexButton(0, 1, "b0");
nex_listen_list = new ???
}
MyNextion::loop() {
nexLoop(nex_listen_list); // ???
}
我一直在搞乱指针和地址运算符,但我找不到成功编译的正确组合。
我的问题是:你会在这里放什么:nex_listen_list = new ???;
另外,我不确定标题是否能很好地定义我的问题。如果您对标题有更好的想法,请更正。
谢谢!
【问题讨论】:
-
这是什么语言?看起来不像 C。试图看起来像 C++,但它失败了。
-
好吧,你可能是对的。实际上这是 C/C++ 的 Arduino 代码。
-
“一个新对象,它是一个指向数组的指针”?对我来说没有任何意义。
-
C/C++ ??那是什么语言?
-
请随时编辑问题以使其更有意义。我不是以英语为母语的人。