GoToCellDialog::GoToCellDialog(QWidget *parent) : QDialog(parent)
:
означает список инициализатора.И это означало, что parent
передается в качестве параметра QDialog
конструктору.Я предполагаю, что GoToCellDialog
является производным от QDialog
и, таким образом, отправляет parent
его конструктору.Таким образом, перед выполнением четного тела GoToCellDialog
выполняется конструктор QDialog
.
Этот пример должен дать вам представление -
class foo
{
int number ;
public:
foo(int i) : number(i) // Means copying value of i to number
{}
};
class bar : public foo
{
public:
bar(int temp) : foo(temp)
{ // <- Before getting here, foo sub object must be constructed.
// Because the order of construction takes from parent to child.
}
};
В приведенном выше примере, безусловно, аргументдля foo
конструктор должен быть передан при создании экземпляра bar
.Таким образом, список инициализаторов является единственным способом, потому что нет никакого конструктора по умолчанию (то есть конструктора без аргументов), доступного для foo
.