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

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

Войти
Регистрация
Восстановить пароль
 
lavrik
10 / 10 / 1
Регистрация: 24.02.2011
Сообщений: 651
#1

Пояснение по синтаксису - C++

13.09.2013, 10:51. Просмотров 435. Ответов 10
Метки нет (Все метки)

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

Код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//========================
 
IntListModel::IntListModel(const QList<int>& list, QObject* pobj)
    :QAbstractListModel(pobj)
    , m_list(list)
{
     // Конструктор  класса  
     бла-бла-бла....
}
 
//========================
 
QVariant IntListModel::data(const QModelIndex& index, int nRole) const
{
    бла-бла-бла....
}


Вопроса 2:
1) В первом методе после скобок указаны - :QAbstractListModel(pobj) , m_list(list)
Для чего это указана и что оно обозначает

2) Во втором методе после скобок указано "const". А это для чего?????

Только не пинайте))))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2013, 10:51     Пояснение по синтаксису
Посмотрите здесь:

Вопрос по синтаксису С++ - C++
Изучаю с++ по книге Джесса Либерти &quot; Освой самостоятельно С++ за 21 день&quot; Он в начале главы пишет : пробел перед оператором ссылки...

Вопрос по синтаксису - C++
Народ подскажите где можно прочесть про такие фишки. или растолкуйте почему индекс и имя массива можно переставить. int x =...

Подскажите по синтаксису for - C++
Нашел в интернете пример кода с регулярными выражениями bool found; cmatch m; try { found =...

Подскажите по синтаксису - C++
привет. Пытаюсь разобраться в коде например, чем |= отличается от обычного равенства needs_reset |= ck803_early_setup_x(); и в...

Вопрос по синтаксису языка - C++
Народ, всем привет!!! Вопрос такой: есть 2 класса, как вставить в класс Prizm функцию friend void...

вопрос по синтаксису/типам - C++
фрагмент файла unique_ptr.h: template &lt;typename _Tp, typename _Tp_Deleter = default_delete&lt;_Tp&gt; &gt; class unique_ptr { ...

Подскажите хороший справочник по синтаксису - C++
Подскажите хороший справочник по синтаксису &quot;С&quot;, ато во всём, что скачиваю чаще-всего одна &quot;философия&quot; программирования, вместо чётких...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dmitriy_M
1340 / 1221 / 111
Регистрация: 20.03.2009
Сообщений: 4,376
Записей в блоге: 11
13.09.2013, 10:53     Пояснение по синтаксису #2
Цитата Сообщение от lavrik Посмотреть сообщение
только не надо гнать в гугл, я не могу там найти, т.к. не могу правильно сформировать запрос...
Цитата Сообщение от lavrik Посмотреть сообщение
Только не пинайте))))
Иди почитай учебник по C++
lavrik
10 / 10 / 1
Регистрация: 24.02.2011
Сообщений: 651
13.09.2013, 10:57  [ТС]     Пояснение по синтаксису #3
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Иди почитай учебник по C++
Спасибо за бесценную помощь...
Dmitriy_M
1340 / 1221 / 111
Регистрация: 20.03.2009
Сообщений: 4,376
Записей в блоге: 11
13.09.2013, 11:09     Пояснение по синтаксису #4
lavrik, а вы что ожидали? Что кто-то будет объяснять основы C++ в не предназначенной для этого ветке?
lavrik
10 / 10 / 1
Регистрация: 24.02.2011
Сообщений: 651
13.09.2013, 11:14  [ТС]     Пояснение по синтаксису #5
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
lavrik, а вы что ожидали? Что кто-то будет объяснять основы C++ в не предназначенной для этого ветке?
Дело в том что это выдержка из программы на Qt, поэтому здесь и написал. Да ошибся, но это по незнанию.
Но неужели это причина по человечески не помочь человеку???
Ответ в кратце будет несколько предложений... Если не хотите помогать, то лучше я считаю вообще ничего не писать, либо отправить меня в нужную ветку.
Иначе это просто флудерство, которое насколько мне известно запрещено на данном форуме...
k0ndaa
96 / 38 / 1
Регистрация: 08.08.2012
Сообщений: 86
13.09.2013, 12:29     Пояснение по синтаксису #6
Не все пятницы одинаково полезны.
Люблю отвечать на любый вопросы, когда делать нечего.

1.а) :QAbstractListModel(pobj) - вызывает конструктор родителя, со всеми вытекающими
1.б) m_list(list) инициализурет переменную m_list, аналогично коду m_list = list в теле конструктора, но гораздо приятнее на вид, избавляет от лишнего кода

2) Указывает, что возвращаемое значение QVariant будет константным. Возможно есть еще тонкости, но точно одна из причин это защита человеков от ряда возможных ошибок, т.к. этот метод возвращает копию значения.
пример:
C++ (Qt)
1
2
3
4
5
6
7
8
    
    qApp->font().setPixelSize(0); 
    // Допустим, что возвращаемая переменная не const
    // вы ожидаете, что измените размер шрифта,
    // но на самом деле вы изменяете размер у возвращенной копии,
    // а шрифт у самого приложения останется неизменным
    
    // если же возвращаемое значение const, комприлятор просто не даст вам допустить такую ошибку
пойти что-ли самому книжек почитать
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
13.09.2013, 12:35     Пояснение по синтаксису #7
Цитата Сообщение от k0ndaa Посмотреть сообщение
1.б) m_list(list) инициализурет переменную m_list, аналогично коду m_list = list в теле конструктора, но гораздо приятнее на вид, избавляет от лишнего кода
Неверно. В списке инициализации вызывается сразу конструктор для m_list с параметром. Если писать m_list = list в теле конструктора, то для m_list сначала вызовется дефолтный конструктор, а потом уже присвоится list. Будет выполнено больше действий.
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
13.09.2013, 12:42     Пояснение по синтаксису #8
1) Список инициализации конструктора. Т.е. члены конструктора сразу инициализируются переданными ему параметрами. А если бы вы присваивали членам класса значения аргументов конструктора, то вначале бы они инициализировались значениями по умолчанию, а потом происходило бы присваивание.
2) Константный метод. Он не меняет состояние объекта класса. (кроме полей mutable)
k0ndaa
96 / 38 / 1
Регистрация: 08.08.2012
Сообщений: 86
13.09.2013, 12:43     Пояснение по синтаксису #9
Ну и сразу ещё поправлю сам себя весь второй пункт сплошное вранье, qapp font возвращает не const, а даже если бы и была, компилятор не ругается, только что проверил

Сообщение уже редактировать не могу, посыпаю голову пеплом, и выбегаю из комнаты гремя клешнями
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.09.2013, 12:48     Пояснение по синтаксису #10
2.
http://habrahabr.ru/post/59558/
http://alenacpp.blogspot.com/2005/09/const-2.html
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 12:52     Пояснение по синтаксису
Еще ссылки по теме:

Различные по синтаксису способы вызова конструктора - C++
Даже не знаю, как правильно задать вопрос, проще разобрать на примере. Пусть есть функция void func(const T1 &amp;o1, const T2 &amp;o2,...

Перегрузка операции индексирования, вопрос по синтаксису - C++
Здравствуйте форумчане. Должна сразу сказать, что в своей практике с С++ сталкивалась мало, поэтому в нем считаю себя новичком. Но все же...

Пояснение к функциям - C++
Есть 2 функции. Не могли бы вы прокомментировать их. Или подробно описать что они делают. Заранее спасибо.bool MEqualsSth(void* first,...

Пояснение функции - C++
Пожалуйста объясните что делает функция, если можно с пояснением знака -&gt;, про указатели я знаю. void List::addElem2(int qt, int...

Граммотное пояснение. - C++
Здравствуйте форумчане! Помогите пожалуйста грамотно (!) объяснить действия выполняющиеся в этом куске программы. { int max = 1;...


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

Или воспользуйтесь поиском по форуму:
lavrik
10 / 10 / 1
Регистрация: 24.02.2011
Сообщений: 651
13.09.2013, 12:52  [ТС]     Пояснение по синтаксису #11
Понял, всем спасибо, тема закрыта)))
Yandex
Объявления
13.09.2013, 12:52     Пояснение по синтаксису
Ответ Создать тему
Опции темы

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