亲爱的StackOverFlowers,
我在将const char* []
传递给对象时遇到了问题。情况如下。
我有一个名为UlamScreen
的类,其中包含几个字符串的const char* []
。 UlamScreen 还包含一个名为
homeScreenMenu
的对象。
class UlamScreen {
const char* homeScreenText[5] = {"EVA dun", "Sabine", "TPU dun", "test Wout",
UlamScreenMenu homeScreenMenu;
};
class UlamScreenMenu {
private:
const char* _menuText[];
public:
UlamScreenMenu(const char*[]);
void drawMenu();
};
我希望将const char* []
传递给,以便我可以在名为void drawMenu
的成员函数中使用它,如下所示:
void UlamScreenMenu::drawMenu() {
for (int i = 0; i < menuItems; i++) {
tft.println(_menuText[i]);
}
}
我将它传递给 UlamScreenMenu
的构造函数,方法如下:
UlamScreen::UlamScreen() : homeScreenMenu(homeScreenText) {
}
UlamScreenMenu::UlamScreenMenu(const char* menuText[], int length) {
for(int i = 0; i < length; i++) {
_menuText[i] = menuText[i];
}
}
我原以为这样做可以起作用,但由于某种原因,它没有起到作用。在使用void drawMenu
时,tft.println(_menuText[i]);
不能将任何内容发送到我的tft屏幕上。当我从UlamScreen类中使用tft.println(_menuText[i]);
时,它完美地工作。
需要明确的是,我可以在UlamScreenMenu类中使用tft
对象,因为其他函数如tft.drawRect()
正常工作。
这种传递const char* []
的方式有什么问题吗?谢谢。
std::string
和std::vector
?此外,const char* _menuText[];
不是标准C++的有效声明。 - UnholySheepstd::vector
的替代方案,请参阅std::array
。 - Some programmer dudestd::array
或std::vector
而不是 C 风格数组。 - Jesper Juhl