Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
1

Не обращается через оператор индексирования к QList

15.01.2016, 11:34. Показов 663. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По идее память и не нужно в куче выделять, но раз возникла ошибка решил спросить, по чему не работает нижеприведенный код?
C++ (Qt)
1
2
3
4
        attributeFiles = new QList<QFile*>();
        QFile *file = new QFile;
        attributeFiles->append(file);
        attributeFiles[0]->setFileName();//Не работает!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.01.2016, 11:34
Ответы с готовыми решениями:

Вызов хранимой процедуры в Oracle с параметрами QList<double>, QList<QDateTime>, QList<quint64>
Добрый день, уважаемые форумчане. Необходимо в хранимую процедуру в Oracle передать параметры,...

QList<QList<QRgb>> ошибка с вложенными списками
Пишу класс, который будет производить операции над изображением (пока только обрезка пустых полей)....

Странное поведение QVector/QList через TCP
Всем привет! Прихожу вчера вечером домой, как обычно запускаю приложение свое, и тут оно внезапно...

Оператор индексирования [] С++
Я перегрузил оператор индексирования таким образом: float* operator (unsigned int i){return...

7
77 / 77 / 30
Регистрация: 21.05.2015
Сообщений: 257
15.01.2016, 12:39 2
Knjagskij, пробуйте так:
C++
1
attributeFiles->at[0]->setFileName();
0
1070 / 652 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
15.01.2016, 12:47 3
Цитата Сообщение от Knjagskij Посмотреть сообщение
attributeFiles[0]->setFileName();//Не работает!
Как именно не работает?
Может в эту строку следовало в качестве параметра передать имя файла, как того и требует её объявление "void setFileName(const QString & name)"?

Добавлено через 4 минуты
Цитата Сообщение от sashatref Посмотреть сообщение
at[0]
Скобки же круглые, не? Да и непонятно чем же она будет лучше обычного operator[], используемого изначально?
0
-2 / 8 / 2
Регистрация: 10.11.2008
Сообщений: 776
15.01.2016, 13:41  [ТС] 4
Wyn, имеется ввиду, что с параметром не работет.
sashatref
, да, через at работает, но его использование смущает, когда нужно не просто вывести элемент контейнера, а его изменить. Да и просто вызывает вопрос, почему оператор индексирования не работает...
Наверное, это связанно с динамическим размером контейнера/?
0
77 / 77 / 30
Регистрация: 21.05.2015
Сообщений: 257
15.01.2016, 14:07 5
Knjagskij, тогда делай вот так:
C++
1
 (*attributeFiles)[0]->setFileName(...)
0
1070 / 652 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
15.01.2016, 14:08 6
Цитата Сообщение от Knjagskij Посмотреть сообщение
да, через at работает, но его использование смущает, когда нужно не просто вывести элемент контейнера, а его изменить.
А, всё понял. Не учёл, что у вас указатель. Можете использовать
C++ (Qt)
1
(*attributeFiles)[0]->setFileName();
У вас в контейнере находятся указатели. Зачем вам их изменять?
0
77 / 77 / 30
Регистрация: 21.05.2015
Сообщений: 257
15.01.2016, 14:09 7
Wyn, разве не бывает ситуации когда нужно изменить указатель в контейнере по определенному индексу?
0
1070 / 652 / 229
Регистрация: 14.01.2016
Сообщений: 2,031
Записей в блоге: 9
15.01.2016, 14:13 8
Цитата Сообщение от Knjagskij Посмотреть сообщение
Да и просто вызывает вопрос, почему оператор индексирования не работает
Потому что применяете вы его к указателю, а не к самому элементу. Я тоже не увидел вначале этого, потому как очень редко применяю указатели на контейнеры.

Добавлено через 2 минуты
Цитата Сообщение от sashatref Посмотреть сообщение
Wyn, разве не бывает ситуации когда нужно изменить указатель в контейнере по определенному индексу?
C++ (Qt)
1
attributeFiles->replace(индекс, новый_QFile*);
Не?
0
15.01.2016, 14:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.01.2016, 14:13
Помогаю со студенческими работами здесь

Односвязный список и оператор индексирования []
Помогите разобраться, как сделать оператор доступа по индексу для односвязного спика. Объявление:...

Оператор индексирования как утилита
Нужно сделать оператор индексирования (operator) утилитой, тоесть вне класа. Не знаю зачем пока, но...

Обращается ли оператор индексации к фиксированному размеру памяти?
Если написать arr обращение идет к фиксированному размеру(например, 1 байт из области выделенной...

Класс для работы с матрицами - Что дает перегруженный оператор индексирования?
Есть работающая программа, которая имеет: конструктор с параметрами, который заполняет матрицу...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru