MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){}
То есть функция MainWindow относится к классу MainWindow, и компилятор это посчитает конструктором.
Но, там сделан стиль наследования (насколько известно, что применим только для классов и структур), то есть функция сделана "какой-то" отнаследованной. От QMainWindow(переменная parent), и ui(Объект MainWindow, (видимо это зеркало this)).
Пользуюсь уже Qt4 почти год, параллельно VS, и до "сих пор", это "пугает".
C/C++
В QtCreator для Qt 4.8 (и 5 может также), у класса формы главной, функция конструктор, делает не понятное наследование?
Это не наследование, это вызов конструкторов предков.
>То есть функция MainWindow относится к классу MainWindow, и компилятор это
> посчитает конструктором.
Возможно потому, что это и есть конструктор
> Но, там сделан стиль наследования (насколько известно, что применим только для классов и структур),
Возможно потому, что MainWindow - это и есть класс
> ...то есть функция сделана "какой-то" отнаследованной. От QMainWindow(переменная parent)
Класс MainWindow, имеющий конструктор (внезапно) MainWindow унаследован от Qt'шного класса QMainWindow
>и ui(Объект MainWindow, (видимо это зеркало this)).
Чё?
Qt-шная форма, в данном случае MainWindow.ui прекомпилируется в свой собственный класс Ui_MainWindow. В этом классе создаются все дочерние элементы формы, чтобы к ним можно было как-то обращаться, еще в нём создаётся пара методов, настраивающих свойства всех этих контролов, чтобы все было описано на c++ и в то же время соответствовало форме. Дальше мок-компилятор делает пространство Ui, в котором создаёт новый класс MainWindow, который наследует от Ui_MainWindow.
Класс MainWindow, в котором и нужно писать прикладной код формы, создаёт экземпляр этого самого класса из неймспейса Ui под именем ui. К текущему классу MainWindow этот класс (Ui::MainWindow) и его экземпляр ui не имеет отношения.
> Пользуюсь уже Qt4 почти год, параллельно VS, и до "сих пор", это "пугает".
Рекомендую почитать основы языка; там где про конструкторы, наследование и все такое.
> посчитает конструктором.
Возможно потому, что это и есть конструктор
> Но, там сделан стиль наследования (насколько известно, что применим только для классов и структур),
Возможно потому, что MainWindow - это и есть класс
> ...то есть функция сделана "какой-то" отнаследованной. От QMainWindow(переменная parent)
Класс MainWindow, имеющий конструктор (внезапно) MainWindow унаследован от Qt'шного класса QMainWindow
>и ui(Объект MainWindow, (видимо это зеркало this)).
Чё?
Qt-шная форма, в данном случае MainWindow.ui прекомпилируется в свой собственный класс Ui_MainWindow. В этом классе создаются все дочерние элементы формы, чтобы к ним можно было как-то обращаться, еще в нём создаётся пара методов, настраивающих свойства всех этих контролов, чтобы все было описано на c++ и в то же время соответствовало форме. Дальше мок-компилятор делает пространство Ui, в котором создаёт новый класс MainWindow, который наследует от Ui_MainWindow.
Класс MainWindow, в котором и нужно писать прикладной код формы, создаёт экземпляр этого самого класса из неймспейса Ui под именем ui. К текущему классу MainWindow этот класс (Ui::MainWindow) и его экземпляр ui не имеет отношения.
> Пользуюсь уже Qt4 почти год, параллельно VS, и до "сих пор", это "пугает".
Рекомендую почитать основы языка; там где про конструкторы, наследование и все такое.
Похожие вопросы
- Передача в метод класса указателя на функцию C++
- Создать простой класс, конструктор, и несколько функций. Не могу решить задачу, плохо понял тему, помогите пожалуйста.
- Что сложного в этом вашем Си плюс плюсе? Классы, объекты, конструкторы, наследование, полиморфизм?
- Как прикрутить кнопки qt к файлу с чистым с++
- Написать программу на C++.Создать класс vector3d, задаваемый тройкой координат. Создать конструктор...
- Программирование, динамическое выделение памяти в конструкторе класса
- Функцию или оператор надо сделать для класса? Cи++
- Дана матрица nxn, вычислить суммы диагональных элементов( главной и побочной ) отдельно, но в одной функции на языке си.
- Програмирование с++,классы, дружественная функция
- Компилятор ворует rvalue конструктор!
Вообще возможно сделать наслендование от QMainWindow, чтобы все доработки (функции), в форме каждой, не дублировать? Или эта динамика не даёт этого сделать.