QVector как аргумент функции., Почему ругается? |
Здравствуйте, гость ( Вход | Регистрация )
QVector как аргумент функции., Почему ругается? |
smartchecker |
17.10.2013, 14:18
Сообщение
#1
|
Студент Группа: Участник Сообщений: 83 Регистрация: 7.9.2011 Пользователь №: 2853 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть ф-ция
когда пытаюсь сделать так
Ругается no matching function for call to "someFunc(<brace-enclosed initializer list>)" no known conversation for argument 1 from '<brace-enclosed initializer list>' to QVector<int> Что не так? |
|
|
Iron Bug |
17.10.2013, 14:47
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
компилятор не понял, что ты ему подсунул. сделай явное приведение типа, если Qt это умеет.
|
|
|
Litkevich Yuriy |
20.10.2013, 17:35
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Алексей1153 |
25.10.2013, 9:27
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
{...} - это список инициализации для статического массива, вектор не умеет его принимать, так как этот список разбирается на этапе компиляции, а не в рантайме
а вот так должно сработать
|
|
|
Litkevich Yuriy |
26.10.2013, 9:21
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
вообще иницализацию в Си++ принято делать через конструктор класса.
Для контейнеров Qt можно использовать такой способ:
где QVector<int>() - конструктор класса (создаём временный объект), затем воспользовавшись оператором QVector<T> & QVector::operator<< ( const T & value ) добавляем во временный объект элементы |
|
|
Текстовая версия | Сейчас: 19.4.2024, 9:08 |