我有一个名为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 constructors和C++11 Object construction improvement。