初C++,构造函数"no matching function call to"
Beginner C++, "no matching function call to" in constructor
我正在尝试启动我的第一个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构造函数上得到一个错误,它说"调用‘TFT::TFT()’没有匹配的函数"。为什么会发生这种情况?为什么我不能像一样运行构造函数
Menu menu = new Menu("Test Menu", scrn);
我缺少什么和/或我必须做什么?
还有几个问题:哪里是进入CPP的好地方?这与C#有点"不同"。我不理解"指针"和其他一些东西的全部意义。
还有一个:如果你碰巧了解Arduino,有没有办法让我自己在Arduino上运行C#代码?不需要插入电脑?
谢谢你们!
从错误消息中可以看出,类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);
相关文章:
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- std::<int>betterer() 比较器与 partial_copy_sort 的困难,在 Mac OSX 上"no matching function call.."
- GCC 和 clang 抛出"no matching function call"但 msvc (cl) 按预期编译和工作
- 将 lambda 传递给 STL 集时出错"bad function call"
- 如何在迭代流缓冲区时摆脱无"matching function call error"?
- 为什么这句话"The expression can be used only as the left-hand operand of a member function call"在 [expr.re
- 内核调用会产生错误"error: a host function call cannot be configured"。调用有什么问题?
- 运算符中的"With respect to an indeterminately-sequenced function call"
- "no matching function call..." 此错误来自哪里,我该如何解决?
- 虚假"missing sentinel in function call"
- 当我尝试将新节点添加到列表中时,我收到错误消息"no matching function call"
- 尝试调用构造函数,收到"no matching function call"编译错误
- 避免派生类C++中的"Pure Virtual Function Call"
- "Function call missing argument list" ?
- boost::asio::d eadline_timer 导致"a function call cannot appear in a constant-expression"错误
- 如何修复("too few arguments in function call")?
- 初C++,构造函数"no matching function call to"
- 如何解决错误说"No matching function call for XXX"?
- "no matching function call"模板化函数项目
- 标准中关于"virtual function call in base constructor"的部分在哪里