Форум программистов, компьютерный форум CyberForum.ru

Не могу понять синтаксис C++ - C++

Восстановить пароль Регистрация
 
Raali
572 / 276 / 12
Регистрация: 06.07.2013
Сообщений: 917
Завершенные тесты: 1
03.08.2013, 23:38     Не могу понять синтаксис C++ #1
как понять данные строки кода, вроде бы наследование, а вроде бы и нет, так как в начале стоит конструктор

C++
1
2
3
4
5
6
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    //ui->setupUi(this);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2013, 23:38     Не могу понять синтаксис C++
Посмотрите здесь:

C++ не могу понять...
C++ Не могу понять
C++ Не могу понять
Стек на основе массива структур - эт как понять читаю литературу и не могу понять! C++
не могу понять C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 00:51     Не могу понять синтаксис C++ #2
В данном случае видно наследование. Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
korvin_
 Аватар для korvin_
1323 / 1094 / 160
Регистрация: 28.04.2012
Сообщений: 3,921
04.08.2013, 01:09     Не могу понять синтаксис C++ #3
Цитата Сообщение от PreFX Посмотреть сообщение
Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
Нет в C++ такой особенности.

Raali, это список инициализации. http://www.learncpp.com/cpp-tutorial...ization-lists/
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:11     Не могу понять синтаксис C++ #4
Угу, вот только инициализировать класс-предок почему-то приходится. К примеру, если у него нет конструктора без аргументов, компилятор выдаёт ошибку в конструкторе потомка в случае отсутствия инициализации предка в списке инициализации потомка.
korvin_
 Аватар для korvin_
1323 / 1094 / 160
Регистрация: 28.04.2012
Сообщений: 3,921
04.08.2013, 01:25     Не могу понять синтаксис C++ #5
Цитата Сообщение от PreFX Посмотреть сообщение
К примеру, если у него нет конструктора без аргументов
Так происходит не только в C++, но и, например, в Java.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:27     Не могу понять синтаксис C++ #6
korvin_, а причём тут Java? Мне казалось, мы тут о C++ говорим.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 01:41     Не могу понять синтаксис C++ #7
Цитата Сообщение от Raali Посмотреть сообщение
так как в начале стоит конструктор
Он всегда стоит, иногда явно, иногда не явно. Перед инициализацией объекта-потомка должен быть инициализирован объект-предок.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:45     Не могу понять синтаксис C++ #8
В общем, перед вызовом конструктора потомка вызывается конструктор предка. Если он не вызывается явно в списке инициализации потомка, то вызывается конструктор без аргументов в случае его наличия, или вылетает ошибка компиляции в случае его отсутствия.
korvin_
 Аватар для korvin_
1323 / 1094 / 160
Регистрация: 28.04.2012
Сообщений: 3,921
04.08.2013, 10:37     Не могу понять синтаксис C++ #9
Цитата Сообщение от PreFX Посмотреть сообщение
а причём тут Java
При том, что необходимость явной инициализации предка, при отсутствии у него конструктора-по-умолчанию, не является «особенностью С++». К.О.
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 13:57     Не могу понять синтаксис C++ #10
Цитата Сообщение от korvin_ Посмотреть сообщение
При том, что необходимость явной инициализации предка, при отсутствии у него конструктора-по-умолчанию, не является «особенностью С++». К.О.
Мастер сказал своё слово. Но зачем? Я лишь сказал, что в C++ всё устроено так, а не иначе, но нужно же придираться к словам. Зачем топикстартеру Java? Давайте уж перечислим в этой теме все ООЯП, разобрав, как устроена инициализация классов-потомков в каждом из них.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 14:17     Не могу понять синтаксис C++
Еще ссылки по теме:

C++ не могу понять
C++ Не могу найти синтаксис оператора ? :

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
zer0mail
2177 / 1860 / 187
Регистрация: 03.07.2012
Сообщений: 6,617
Записей в блоге: 1
04.08.2013, 14:17     Не могу понять синтаксис C++ #11
Цитата Сообщение от PreFX Посмотреть сообщение
В данном случае видно наследование. Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
1. Это ошибочное утверждение и насчет особенности и насчет "должен брать".
2. korvin_ просто опроверг обе части: и что "должен брать" и что "особенность".

Не надо "ляпать" что попало, тогда и "придираться" будет не чему.
Yandex
Объявления
04.08.2013, 14:17     Не могу понять синтаксис C++
Ответ Создать тему
Опции темы

Текущее время: 15:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru