Qt—未解析的重载函数类型
Qt - unresolved overload function type
我在Qt Creator中构建应用程序时遇到以下错误:
错误(第3行):没有用于调用"QGraphicsScene::QGraphicsSene()"的匹配函数
其来源很简单(文件名为gamscene.cpp):
#include "gamescene.h"
GameScene::GameScene() : QGraphicsScene(parent)
{
}
我在谷歌上搜索过,也看到过一些类似的问题,但我真的不明白给出的答案。
我们从QGraphicsScene类派生了类似的类
class ImprintTemplateScene : public QGraphicsScene
{
Q_OBJECT
public:
ImprintTemplateScene(QObject *parent = 0);
...
};
请注意,父级是传递给构造函数的参数。构造函数的实现看起来像:
ImprintTemplateScene::ImprintTemplateScene(QObject *parent)
: QGraphicsScene(parent),
sceneMode(mode_normal),
editingTextBox(0)
{
}
parent
必须来自某个地方。由于您正在定义GameScene
构造函数,因此它可能实际上是构造函数的一个参数(我不熟悉Qt,所以我不知道parent
应该是什么类型——在实际代码中使用适当的类型):
GameScene::GameScene(TypeOfParent parent) : QGraphicsScene(parent)
{
}
或者,如果在没有父级的情况下调用QGraphicsScene
构造函数是有意义的,那么:
GameScene::GameScene() : QGraphicsScene()
{
}
可能是有可能的。可能不会,因为错误消息指示QGraphicsScene
不存在零参数构造函数。
此外,您没有发布类定义,但在尝试构造函数定义时,我假设GameScene
公开继承自QtGraphicsScene
。因此,当您构建GameScene
时,您需要调用超类构造函数(正如您试图做的那样)。但是超类构造函数的任何参数只能来自构造函数的参数。因此,如果超类构造函数需要一个参数,则构造函数将需要该参数,以便将其传递给超类构造函数(除非向超类构造函数传递编译时常量参数是有意义的)。
相关文章:
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 可以打印矢量和矢量中的矢量的非重载C++函数
- 错误 没有与参数列表匹配的重载函数"getline"实例
- 使用模板重载函数
- C++线程中,没有重载函数接受 X 参数
- std::vector 没有重载函数的实例与参数列表匹配
- C++重载函数,一个采用基类的参数,另一个采用派生类的参数
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- 对重载函数find_first_not_of的不明确调用
- 如何从重载解析中删除重载函数?
- CUDA:重载函数"isnan"的多个实例
- C++派生类重载函数(带有 std::function 参数)不可见
- 避免在人为的重载函数调用中拼写出类型
- C++:如何为多个重载函数保留通用代码路径?
- 什么时候可以使用常量装饰调用我的重载函数?
- 尝试使用谓词函数会导致错误:"std::sort"未找到匹配的重载函数
- std::调用,未找到匹配的重载函数
- 为什么在传递长整型时调用具有两个双精度类型的参数的重载函数?
- 为什么使用不匹配的参数调用重载函数仍然有效
- 如何通过签名作为模板参数来解决重载函数?