construtor de cópia da classe QT derivada
Eu tenho uma classe que é herdada publicamenteQWidget
:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(const MyWidget& other)
:
obj1(other.obj1),
obj2(other.obj2)
private:
some_class obj1;
some_class obj2;
};
Quando eu construí meu projeto, o compilador reclama:
AVISO :: Base class "class QWidget" deve ser explicitamente inicializado no construtor de cópia.
Eu fiz check-out de outras perguntas no stackoverflow e recebi minha resposta. Mas o fato é que, quando eu adicionei essa inicialização assim:
class MyWidget : public QWidget
{
Q_OBJECT
public:
MyWidget(const MyWidget& other)
:
QWidget(other), //I added the missing initialization of Base class
obj1(other.obj1),
obj2(other.obj2)
private:
some_class obj1;
some_class obj2;
};
Eu tenho erro de compilação:
QWidget :: QWidget (const QWidget &) é privado neste contexto
Então, por favor, me explique o que estou fazendo de errado.