c++ - 从基于 QObject 的类继承构造函数

标签 c++ qt inheritance qobject

我有一个名为 MiscData 的类,它继承了 QObject 并且有一个成员变量(模型)。然后是一堆继承 MiscData 并重新实现其虚函数以填充模型的其他类。所以它看起来像这样:

class MiscData : public QObject
{
    Q_OBJECT
public:
    explicit MiscData(QObject *parent = 0);
    QAbstractItemModel &model();
private:
    virtual void loadData() = 0;
private:
    QStandardItemModel m_Model;
}

其中一个后代看起来像这样:

class LogData : public MiscData
{
    Q_OBJECT
public:
    using MiscData::MiscData;
private:
    virtual void loadData() override;
}

我知道我必须为 MiscData 使用显式构造函数,因为它会初始化模型成员变量。但是我想知道在派生类中使用 using 指令来继承 MiscData 的构造函数是否安全。

编辑:根据答案,在 MiscData 中使用 using QObject::QObject 似乎也不错。

最佳答案

看起来你正在做的事情从 C++11 开始就完全正确了。

参见 Inheriting constructorsC++11 Object construction improvement .

Note that this is an all-or-nothing feature; either all of that base class's constructors are forwarded or none of them are.

关于c++ - 从基于 QObject 的类继承构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29363745/

相关文章:

c++ - 引用保留名称肯定是非法的吗?

c++ - 基于 STL 双端队列的树与二叉树的自己实现?

C++ 分配 vector 指针

Qt:通过项目文件创建目录

c++ - 将 QImage 保存到 QBuffer

java - JAXB继承+XMLAdapter(HashMap)

C++:可以继承类及其 protected 成员类型吗?

c++在一个类中使用模板和虚方法

c++ - 函数参数默认值为 "passing_parametr"*2

qt - 设置 Qt Creator 以调试 Qt 类