我有一个名为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

08-20 04:29