C++ Qt-未解析的重载函数类型
尝试在Qt Creator中构建应用程序时,我遇到以下错误: 错误(第3行):调用“QGraphicscene::QGraphicscene()”时没有匹配的函数 其来源很简单(文件名为gamsecene.cpp):C++ Qt-未解析的重载函数类型,c++,qt,C++,Qt,尝试在Qt Creator中构建应用程序时,我遇到以下错误: 错误(第3行):调用“QGraphicscene::QGraphicscene()”时没有匹配的函数 其来源很简单(文件名为gamsecene.cpp): 我在谷歌上搜索了一下,看到了一些类似的问题,但我真的不理解给出的答案。你第3行的家长必须来自某个地方。由于您正在定义一个游戏场景构造函数,因此可能它实际上是构造函数的一个参数(我不熟悉Qt,所以我不知道父类应该是什么类型——在实际代码中使用适当的类型): 或者,如果调用qgraph
我在谷歌上搜索了一下,看到了一些类似的问题,但我真的不理解给出的答案。
你第3行的家长必须来自某个地方。由于您正在定义一个游戏场景
构造函数,因此可能它实际上是构造函数的一个参数(我不熟悉Qt,所以我不知道父类
应该是什么类型——在实际代码中使用适当的类型):
或者,如果调用qgraphicscene
构造函数时没有父级,那么:
GameScene::GameScene() : QGraphicsScene()
{
}
有可能。可能不是,因为错误消息指示没有qgraphicscene
的零参数构造函数
另外,您没有发布类定义,但是考虑到您的构造函数定义尝试,我假设GameScene
公开继承自qtgraphicscene
。因此,当您构建游戏场景时,需要调用超类构造函数(正如您所尝试的那样)。但是超类构造函数的任何参数只能来自构造函数的参数。因此,如果超类构造函数需要一个参数,那么您的构造函数将需要该参数,以便它可以将其传递给超类构造函数(除非您向超类构造函数传递编译时常量参数是有意义的)。我们从QGraphicscene类派生,如下所示
class ImprintTemplateScene : public QGraphicsScene
{
Q_OBJECT
public:
ImprintTemplateScene(QObject *parent = 0);
...
};
请注意,父级是传递给构造函数的参数。构造函数实现如下所示:
ImprintTemplateScene::ImprintTemplateScene(QObject *parent)
: QGraphicsScene(parent),
sceneMode(mode_normal),
editingTextBox(0)
{
}
什么是游戏场景
,什么是家长
?
class ImprintTemplateScene : public QGraphicsScene
{
Q_OBJECT
public:
ImprintTemplateScene(QObject *parent = 0);
...
};
ImprintTemplateScene::ImprintTemplateScene(QObject *parent)
: QGraphicsScene(parent),
sceneMode(mode_normal),
editingTextBox(0)
{
}