Хотя возможно, как говорит DeadMG, это довольно глупо.
Вам не нужно вызывать конструктор копирования базового класса из собственного, поэтому, если вам абсолютно необходимо иметь семантику значений, это все еще возможно.Но в контексте QObject
с это все еще довольно неортодоксально.Даже для ваших собственных внутренних классов необходимо помнить о принципе наименьшего удивления.
Если это абсолютно необходимо, я бы избегал традиционного оператора конструктора / назначения копирования и работал через функции-члены.Ожидаемая семантика QObject
производных будет сохранена, но у вас есть способ явно выполнить то, что вы хотите сделать.
struct SomeType : QObject {
QSharedPointer<SomeType> Clone() const;
//or
SomeType& CopyValue(const SomeType&);
//rest of implementation
};