C++ Qt-未解析的重载函数类型

C++ Qt-未解析的重载函数类型,c++,qt,C++,Qt,尝试在Qt Creator中构建应用程序时,我遇到以下错误: 错误(第3行):调用“QGraphicscene::QGraphicscene()”时没有匹配的函数 其来源很简单(文件名为gamsecene.cpp): 我在谷歌上搜索了一下,看到了一些类似的问题,但我真的不理解给出的答案。你第3行的家长必须来自某个地方。由于您正在定义一个游戏场景构造函数,因此可能它实际上是构造函数的一个参数(我不熟悉Qt,所以我不知道父类应该是什么类型——在实际代码中使用适当的类型): 或者,如果调用qgraph

尝试在Qt Creator中构建应用程序时,我遇到以下错误:

错误(第3行):调用“QGraphicscene::QGraphicscene()”时没有匹配的函数

其来源很简单(文件名为gamsecene.cpp):


我在谷歌上搜索了一下,看到了一些类似的问题,但我真的不理解给出的答案。

你第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)
{   
}