У меня есть класс с именем MiscData
, который наследует QObject
и имеет переменную-член (модель). А затем куча других классов, которые наследуют MiscData
и переопределяют его виртуальную функцию для заполнения модели. Так это выглядит следующим образом:Наследующий конструктор класса QObject
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
следующим образом.
РЕДАКТИРОВАТЬ: На основе ответа, кажется, что прекрасное событие использовать using QObject::QObject
в MiscData тоже.
Это безопасно. 'MiscData :: MiscData' является общедоступным. Какая у вас проблема? –
@SaZ У меня пока нет проблем. :-) Мне просто интересно, безопасно ли это делать, когда в дереве наследования есть QObject и макрос Q_OBJECT. Я не знал, должен ли конструктор производного класса QObject быть явным во всех производных классах (для установки свойств для примера), или я могу наследовать его так же, как я показал. – Resurrection
В вашем случае будут вызываться следующие ctors: 'QObject (nullptr)' -> 'MiscData (0)' -> 'LogData()'. –