在构造函数 QT Creator(继承类)中传递默认参数

Posted

技术标签:

【中文标题】在构造函数 QT Creator(继承类)中传递默认参数【英文标题】:Passing default argument in constructor QT Creator ( inherited class ) 【发布时间】:2019-01-27 14:04:30 【问题描述】:

我试图在构造函数中传递一个默认参数,但我无法弄清楚它是如何完成的,因为我是 qt 创建者的新手。 这就是我正在尝试的 在头文件中:

public:
    Compteur(QWidget *parent = nullptr , int variable= 5);

在 cpp 文件中:

Compteur::Compteur(QWidget *parent = nullptr, int variable) : QLabel(parent)



我得到的错误是:

error: default argument given for parameter 1 of 'Compteur::Compteur(QWidget*, int)' [-fpermissive]
 Compteur::Compteur(QWidget *parent = nullptr, int variable) : QLabel(parent)
                       

其余代码: 头文件:

#ifndef COMPTEUR_H
#define COMPTEUR_H
#include <QtWidgets>

class Compteur : public QLabel

    Q_OBJECT


    QString texte;
    int valeur;
    int valeurInitiale;

public:
    Compteur(QWidget *parent = nullptr , int valI = 5);
    void setText(const QString &);

public slots:
    void Decremente()

    

    void Reinitialise()

    
;

#endif // COMPTEUR_H
                        ^

和cpp文件:

包括“compteur.h”

包括

Compteur::Compteur(QWidget *parent , int valI) : QLabel(parent)



【问题讨论】:

感谢我尝试过的回复,它向我显示了一个新错误:错误:未定义对 `vtable for Compteur' 的引用 【参考方案1】:

在你的 cpp 文件中,参数应该是这样的

Compteur::Compteur(QWidget *parent, int variable) : QLabel(parent)



【讨论】:

感谢您的回复,我已经尝试过了,现在它给了我这个错误:错误:未定义的对 `vtable for Compteur' 的引用 没有看到代码我就无法判断这个错误,你介意发布它吗? 我已经添加了代码,我没有太多,我刚刚开始创建这个类,其他类工作正常 添加虚拟~computer();到你的电脑头文件 感谢@Spinkoo 的帮助。这是编译器的问题,必须在编译之前运行 qmake,现在它工作正常【参考方案2】:

只需删除或评论

ifndef COMPTEUR_H

//这里有heder文件

endif // COMPTEUR_H

【讨论】:

//ifndef COMPTEUR_H #define COMPTEUR_H #include class Compteur : public QLabel Q_OBJECT QString texte;诠释价值; int valeurInitiale;公共: Compteur(QWidget *parent = nullptr , int valI = 5);无效 setText(const QString &);公共插槽: void Decremente();无效重新初始化(); ; //#endif // COMPTEUR_H

以上是关于在构造函数 QT Creator(继承类)中传递默认参数的主要内容,如果未能解决你的问题,请参考以下文章

Qt Creator - 未获得某些 OpenCV 构造函数的函数参数提示

继承中參数传递及调用顺序

Cocos Creator 入门

在构造函数之外延长 QT 对象的生命周期

Qt:何时使用继承与设置属性?

Qt编程问题.