С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,070
Завершенные тесты: 1
#1

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

03.08.2013, 23:38. Просмотров 748. Ответов 10
Метки нет (Все метки)

как понять данные строки кода, вроде бы наследование, а вроде бы и нет, так как в начале стоит конструктор

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

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура "Товар" которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Не могу сделать полиморфизм. Не могу до конца понять пример по этому поводу - C++
Есть такая задача: Класс Animal должен быть абстрактным, имеет имя и вес. Класс Reptile имеет habitate, который держит в себе среду...

Синтаксис, не могу разорбраться - C++
всю голову сломал, не могу найти в чем причина ошибок... ||=== Build: Debug in bac (compiler: GNU GCC Compiler) ===| ...

Не могу найти синтаксис оператора ? : - C++
День добрый. Подскажите синтаксис оператора ? : (по-моему так правильно). Есть строка кода: int iEnd = (vsi.nPos+vsi.nPage <...

Не могу составить регулярное выражение. Не понимаю синтаксис - C++
Есть у меня строка "C:\Users\My\example.txt" Как должно выглядеть регулярное выражение на с++, шаблон или маска этой строки, чтобы её...

не могу понять - C++
как сделать так чтобы B двигался по массиву? #include<iostream> #include <conio.h> using namespace std; int main() { int...

10
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 00:51 #2
В данном случае видно наследование. Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
1
korvin_
1940 / 1425 / 226
Регистрация: 28.04.2012
Сообщений: 5,097
04.08.2013, 01:09 #3
Цитата Сообщение от PreFX Посмотреть сообщение
Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
Нет в C++ такой особенности.

Raali, это список инициализации. http://www.learncpp.com/cpp-tutorial...ization-lists/
1
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:11 #4
Угу, вот только инициализировать класс-предок почему-то приходится. К примеру, если у него нет конструктора без аргументов, компилятор выдаёт ошибку в конструкторе потомка в случае отсутствия инициализации предка в списке инициализации потомка.
0
korvin_
1940 / 1425 / 226
Регистрация: 28.04.2012
Сообщений: 5,097
04.08.2013, 01:25 #5
Цитата Сообщение от PreFX Посмотреть сообщение
К примеру, если у него нет конструктора без аргументов
Так происходит не только в C++, но и, например, в Java.
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:27 #6
korvin_, а причём тут Java? Мне казалось, мы тут о C++ говорим.
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.08.2013, 01:41 #7
Цитата Сообщение от Raali Посмотреть сообщение
так как в начале стоит конструктор
Он всегда стоит, иногда явно, иногда не явно. Перед инициализацией объекта-потомка должен быть инициализирован объект-предок.
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 01:45 #8
В общем, перед вызовом конструктора потомка вызывается конструктор предка. Если он не вызывается явно в списке инициализации потомка, то вызывается конструктор без аргументов в случае его наличия, или вылетает ошибка компиляции в случае его отсутствия.
1
korvin_
1940 / 1425 / 226
Регистрация: 28.04.2012
Сообщений: 5,097
04.08.2013, 10:37 #9
Цитата Сообщение от PreFX Посмотреть сообщение
а причём тут Java
При том, что необходимость явной инициализации предка, при отсутствии у него конструктора-по-умолчанию, не является «особенностью С++». К.О.
0
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
04.08.2013, 13:57 #10
Цитата Сообщение от korvin_ Посмотреть сообщение
При том, что необходимость явной инициализации предка, при отсутствии у него конструктора-по-умолчанию, не является «особенностью С++». К.О.
Мастер сказал своё слово. Но зачем? Я лишь сказал, что в C++ всё устроено так, а не иначе, но нужно же придираться к словам. Зачем топикстартеру Java? Давайте уж перечислим в этой теме все ООЯП, разобрав, как устроена инициализация классов-потомков в каждом из них.
0
zer0mail
2379 / 2010 / 200
Регистрация: 03.07.2012
Сообщений: 7,253
Записей в блоге: 1
04.08.2013, 14:17 #11
Цитата Сообщение от PreFX Посмотреть сообщение
В данном случае видно наследование. Особенность наследования в c++ состоит в том, что инициализацию класса-предка программист должен брать на себя.
1. Это ошибочное утверждение и насчет особенности и насчет "должен брать".
2. korvin_ просто опроверг обе части: и что "должен брать" и что "особенность".

Не надо "ляпать" что попало, тогда и "придираться" будет не чему.
0
04.08.2013, 14:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 14:17
Привет! Вот еще темы с ответами:

не могу понять - C++
есть такой код void addElement(const T& elem){ *(_pointer) = elem; // int t1 = _pointer < &_deque_data; // int t2 =...

Не могу понять почему... - C++
#include "stdafx.h" void main() { funct(); _getch(); } void funct() {

не могу понять ошибку - C++
Народ, здарова, сижу над классами, конкретно наследование классов! Компилятор выдает ошибку: Unit1.cpp(143): E2285 Could not find a...

Не могу понять разницу! do-while - C++
Цикл for работает: #include <iostream> #include <math.h> #include <conio.h> using namespace std; int main() { char...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.