Russian Qt Forum

Программирование => С/C++ => Тема начата: andrew.k от Декабрь 26, 2011, 13:08



Название: QGraphicsItem + QObject
Отправлено: andrew.k от Декабрь 26, 2011, 13:08
Есть такой класс QGraphicsObject.
Вот так он описан:
Код
C++ (Qt)
class Q_GUI_EXPORT QGraphicsObject : public QObject, public QGraphicsItem

А вот реализация конструктора:
Код
C++ (Qt)
QGraphicsObject::QGraphicsObject(QGraphicsItem *parent)
       : QGraphicsItem(parent)
{
   QGraphicsItem::d_ptr->isObject = true;
}

Вопрос, почему не вызывается конструктор QObject?


Название: Re: QGraphicsItem + QObject
Отправлено: BRE от Декабрь 26, 2011, 13:20
Вопрос, почему не вызывается конструктор QObject?
Здесь он не прописан явно, поэтому вызывается конструктор QObject по умолчанию.


Название: Re: QGraphicsItem + QObject
Отправлено: andrew.k от Декабрь 26, 2011, 13:41
Вопрос, почему не вызывается конструктор QObject?
Здесь он не прописан явно, поэтому вызывается конструктор QObject по умолчанию.
Т.е. если я не указал конструктор, класса от которого наследуюсь он будет вызван явно?
Я всегда считал это ошибкой, если нет конструктора)

UPD: надо же. проверил, действительно, если есть дефолтный коструктор, его можно явно не указывать.


Название: Re: QGraphicsItem + QObject
Отправлено: BRE от Декабрь 26, 2011, 13:44
Т.е. если я не указал конструктор, класса от которого наследуюсь он будет вызван явно?
Будет вызван его конструктор по умолчанию.