我正在尝试启动我的第一个Arduino项目,一个小巧的8位掌上游戏机。
所以,我正努力做我的第一堂课。我对CPP非常陌生,过去我做过很多C#和java。
这是我的代码:
#include <SPI.h>
#include <TFT.h>
class Menu {
String menuTitle = "Menu";
TFT TFTscreen;
public:
Menu(String title, TFT screen)
{
menuTitle = title;
TFTscreen = screen;
}
void Update() {
TFTscreen.setTextSize(2);
TFTscreen.text(menuTitle, 0, 0);
}
};
我在Menu构造函数上出错,它说&#34;没有匹配函数来调用&#39; TFT :: TFT()&#39; &#34 ;.为什么会这样?为什么我不能像
那样运行构造函数Menu menu = new Menu("Test Menu", scrn);
我缺少什么和/或我该做什么?
还有一些问题: 进入CPP的好地方在哪里?它有点不同&#34;来自C#。我不明白&#34;指针&#34;的全部内容。还有其他一些事情。
还有一个: 如果你碰巧知道任何关于Arduino的事情,有没有什么方法可以在arduino上运行C#代码呢?无需插入计算机?
谢谢你们!
答案 0 :(得分:2)
从错误消息中可以看出,类TFT
没有默认构造函数(可以不带参数调用的构造函数)。
检查班级定义。
发生错误是因为调用了类TFT
class Menu {
String menuTitle = "Menu";
TFT TFTscreen;
^^^^^^^^^^^^^^
public:
Menu(String title, TFT screen)
{
menuTitle = title;
TFTscreen = screen;
}
//...
您可以按以下方式编写Menu构造函数
Menu( const String &title, const TFT &screen ) : menuTitle( title ), TFTscreen( screen )
{
}
(我不确定String是否是有效的类名)
因为C ++不是C#,你可能不会写
Menu menu = new Menu("Test Menu", scrn);
你必须写
Menu *menu = new Menu("Test Menu", scrn);
或者看起来你可以写简单
Menu menu("Test Menu", scrn);