Здравствуйте, гость ( Вход | Регистрация )
XpycT | Дата 2.12.2009, 21:18 |
Все решилось методом тыка..только отписался поздно. Просто привер второй конструктор к виду с const и проблема отпала сама собой.. странно что в 4,6 это потребовалось - раньше обходился и без этого | |
Litkevich Yuriy | Дата 2.12.2009, 20:35 |
константная может быть как с так и без значения по умолчанию. ну да, надо было фразу иначе построить |
|
kwisp | Дата 2.12.2009, 19:37 |
либо константная с умалчиваемым значением константная может быть как с так и без значения по умолчанию. |
|
Litkevich Yuriy | Дата 2.12.2009, 16:50 |
ага, понял. Если ссылка, то либо не константная без умалчиваемого значения либо константная с умалчиваемым значением Либо вовсе не ссылка (по значению или по указателю), тогда можно и умалчиваемое значение |
|
Tonal | Дата 2.12.2009, 14:25 |
Да. Убрать const можно только со значениями по умолчанию. Простой пример:
Как компилятор должен это обработать? Куда запишется 10 после вызова foo() в main-е? |
|
Litkevich Yuriy | Дата 2.12.2009, 11:43 |
Tonal, я тебя не понял, вот стандартная функция: QStringList QFileDialog::getOpenFileNames ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter = 0, Options options = 0 ) [static] что мы не имеем права убрать слово const? |
|
Tonal | Дата 2.12.2009, 11:38 |
Какой компилятор? Конструкция some_type& arg = value в параметрах функции компилится по стандарту не может, т.к. получается противоречие: value в данном случае константа, а внутри функции ты её можешь менять. Эта конструкция работала только в очень старых и не поддерживающих стандарт компиляторах, типа bcc32 v5.0 или msvc 6 Про QStringList не ясно - напиши какую именно ошибку выдаёт компилятор. |
|
Litkevich Yuriy | Дата 2.12.2009, 11:30 |
Обычно используют конструктор по умолчанию, т.е. вместо: const QString &name="" пишут const QString &name=QString() П.С. это относится не 4.6., а вообще наличе/отсутствие const не должно никак влиять, т.к. это лишь подсказка компилятору проверить за тебя правильность использования данных внутри метода (если аргумент помечен как константный, то его нельзя менять внутри функции) |
|
XpycT | Дата 2.12.2009, 10:08 |
Есть проект - прекрасно компилился на версиях 4.5.х , но при переходе на 4.6 начало выдавать ошибки в конструкторе класса. Первая была решена подстановкой const , тоесть вместо
сделал
А вот с QStringList &screens=QStringList() проблемку не решил .. сам конструктор класса
Тоесть в QStringList &screen при создании диалога должен передаться массив ссылок на скриншоты. Подскажите как задать пустое значение по умолчанию в 4,6. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 14:41 |