![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Vasya |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
Добрый день!
Пишу небольшую програмулину в среде QT и сталкнулся с следующим приколом. Наследую класс от QAbstractTableModel и реализую виртуальную функцию
затем перегружаю эту функцию пару раз для удобства:
Далее вызываю где-то в прогамме третий фариант функции
при сборке получаю следущее сообщение: error: initializing argument 2 bool setData(int &, int &, QVariant &), т. е. подставляется второй вариант. Но если я вызову третий вариант следующим способом
то компилятор не ругается. Что это такое? Это сообщение отредактировал(а) Vasya - 24.2.2013, 12:42 |
||||||||
|
|||||||||
| NoviceF |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: нет Всего: 2 |
Совет отменяется, не заметил передачу по ссылке..
Возможно, константа
не однозначно определяется копилятором, как ссылка на QString. Я, честно говоря, не совсем представляю, как этот параметр передаётся в функцию.. вроде бы в сигнатуре заявлена ссылка на существующий объект QString, а передаётся массив чаров.. Это сообщение отредактировал(а) NoviceF - 24.2.2013, 13:17 |
|||
|
||||
| Vasya |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 72 Регистрация: 5.7.2003 Репутация: нет Всего: нет |
мдаа.... Заменил QVariant &value на const QVariant &value и проблема исчезла |
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
|
|||
|
||||
| Dem_max |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1780 Регистрация: 12.4.2007 Репутация: 4 Всего: 39 |
-------------------- Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte") |
|||
|
||||
| NoviceF |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 313 Регистрация: 13.3.2012 Где: Ростов-на-Дону Репутация: нет Всего: 2 |
разобрался при помощи небольшого эксперимента. В функции создаётся и инициализируется переданной переменной временный объект того типа, который указан в сигнатуре.
ну собственно неконстантный объект компилятор просто так и не пропустит: http://codepad.org/PEY7Rvu1 |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |