Название: Не могу разобрать запись Отправлено: Atridies от Май 06, 2020, 21:18 Здравствуйте коллеги!
Потребовалось разобраться с куском кода на Qt (до этого писал на си и чуть-чуть на питоне). Помогите разобрать запись: Код: QDataStream& operator<<(QDataStream& out, const Mode& v) 1. Что тут делается ? 2. Почему тут несколько << ? (в си это сдвиги). 3. Что за QDataStream? 4. Что за "operator" ? Заранее спасибо! Название: Re: Не могу разобрать запись Отправлено: demal от Май 06, 2020, 21:32 это опрежеление, для того чтобы модель записывать в выходной файл. Посмотри в тырнете на тему как написать собственный оператор записи в поток, а также ввод/вывод на с++.
QDataStream - класс реализующий запись двоичных данных в поток. После такого определения будет возможно записывать данные в виде: выходной поток<<записываемые данные, Название: Re: Не могу разобрать запись Отправлено: Atridies от Май 07, 2020, 01:07 Благодарю за ответ.
Правильно ли я понимаю, что в out уйдет последовательно: v.virt, потом v.buf[0], потом v.buf[1] ? Название: Re: Не могу разобрать запись Отправлено: kambala от Май 07, 2020, 10:44 все верно
Название: Re: Не могу разобрать запись Отправлено: Atridies от Май 07, 2020, 13:42 Спасибо.
А это будет всё за один раз? Т.е. можно переписать эту запись как: out << v.virt out << v.buf[0] out << v.buf[1]; Или при каждом вызове будет передача соседу и всё ? Т.е.: out << v.virt v.virt << v.buf[0] v.buf[0] << v.buf[1]; Название: Re: Не могу разобрать запись Отправлено: ViTech от Май 07, 2020, 13:55 А это будет всё за один раз? Т.е. можно переписать эту запись как: out << v.virt out << v.buf[0] out << v.buf[1]; Этот вариант. |