Название: Как написать функцию Length(QList *)? Отправлено: deadlineX от Август 17, 2023, 17:13 Доброго времени суток!
Возник вопрос: как написать функцию, возвращающую QList::count(), но именно, как функцию с аргументом (QList *)? Я перевожу большой проект с Delphi на Qt. и первое (ну, почти :)), с чем столкнулся, это как бы так записать Length() и SetLength(), если я в качестве массивов использую QList? Хотелось бы именно универсальные функции, а не для каждого класса свою пару, так-то смысл теряется почти - можно простой заменой пройтись и везде заменить Length(myArray) на myArray.count()... Есть более красивое решение? -Спасибо. Название: Re: Как написать функцию Length(QList *)? Отправлено: Old от Август 17, 2023, 18:59 Код
Название: Re: Как написать функцию Length(QList *)? Отправлено: deadlineX от Август 18, 2023, 04:35 Спасибо!
И то есть, получается, что при такой записи без разницы, что передавать в аргумент - экземпляр класса или указатель на него? То есть, если передать (QList *myArray), то оно преобразуется в myArray->size() ? Название: Re: Как написать функцию Length(QList *)? Отправлено: kambala от Август 18, 2023, 09:33 нет, указатель так не передашь. а зачем передавать массив как указатель? в случае с Qt контейнерами их можно передавать по значению
Название: Re: Как написать функцию Length(QList *)? Отправлено: deadlineX от Август 18, 2023, 18:05 OK, принято.
Там еще не очень понятно с оператором []. Допустим, элементом листа является некая структура. Когда делается resize(), эти элементы заполняются нулями? Или там просто кусок памяти с мусором в каждом элементе? И допустим также. что одно из полей структуры тоже QList<T>. Это поле никак не надо предварительно инициализировать? Его сразу можно использовать, например тоже ему делать resize()? Название: Re: Как написать функцию Length(QList *)? Отправлено: kambala от Август 18, 2023, 21:51 вызовется конструктор по умолчанию в обоих случаях
Название: Re: Как написать функцию Length(QList *)? Отправлено: deadlineX от Август 19, 2023, 04:26 вызовется конструктор по умолчанию в обоих случаях Простите мне мою необразованность, но что является конструктором для структуры?У меня там везде элементами массива (который QList) являются не классы, а структуры. Или это сейчас уже не важно с точки зрения компилятора? С тех пор, как у структур появились методы, все смешалось... :) Название: Re: Как написать функцию Length(QList *)? Отправлено: sergek от Август 19, 2023, 14:26 Структура в C++ - это класс с открытыми по умолчанию членами ))
|