Название: Пример из Assistant'a Отправлено: finka от Сентябрь 19, 2007, 12:01 Пример взят из описания класса QVariant:
Код: QDataStream out(...); Кто-нибудь, объясните, пожалуйста, почему в v из in читается именно значение типа int? Название: Re: Пример из Assistant'a Отправлено: Hellraiser от Сентябрь 19, 2007, 12:09 А кто сказал, что читается int? :)
Чтение происходит из потока, где содержатся просто байты, а уж потом прочитанное приводится к int посредством вызова v.toInt(). Кроме того, конструктор QVariant вызывается с int. Если смущает typeName, который выдает int, то вот что говорит Assistant: Цитировать const char * QVariant::typeName () const Returns the name of the type stored in the variant. The returned strings describe the C++ datatype used to store the data: for example, "QFont", "QString", or "QValueList". An Invalid variant returns 0. В этом случае выдается базовый тип языка - int. Название: Re: Пример из Assistant'a Отправлено: finka от Сентябрь 19, 2007, 12:19 Тогда откуда v известно, сколько байт из потока читать?
И что значит "Writes a type tag and an int to out"? Что еще кроме самого числа пишется в out? Непоняяятно... Название: Re: Пример из Assistant'a Отправлено: pastor от Сентябрь 19, 2007, 12:19 Кто-нибудь, объясните, пожалуйста, почему в v из in читается именно значение типа int? А что собственно говоря должно считываться? Есть в коде такой комментарий "opening the previously written stream". А в предыдущий поток ты что писал: сначало число типа int (123), затем строку QString. Вот первым мы исчитали значение типа int. За более подробной информацией обращайся к ассистанту - см. QDataStream. Название: Re: Пример из Assistant'a Отправлено: pastor от Сентябрь 19, 2007, 12:30 Вот, посмотрите вот этот раздел в ассистанте: Format of the QDataStream Operators. В таблице представлены все типы поддерживаемые QDataStream а также их способ записис в поток. Все вопросы должны отпасть сми собой.
Код: QVariant Название: Re: Пример из Assistant'a Отправлено: finka от Сентябрь 19, 2007, 12:37 Спасибо, теперь понятно.
|