2013-12-02 4 views
-1

Я перегрузил '< <' оператор MyClass.std :: ostream to QDataStream

friend std::ostream& operator << (std::ostream& out, const MyClass& Obj); 

Теперь я хочу, чтобы преобразовать зЬй :: ostream в QDataStream, а не преобразовывать MyClass в QDataStream.

friend QDataStream operator << (QDataStream& out, std:ostream&); 

Нечто подобное. Ваша помощь будет оценена.

+2

Er? Вы пытаетесь создать автоответчик для хранения * выходных потоков * в 'QDataStream'? Это не представляется возможным, и, конечно, не имеет большого смысла. Можете ли вы уточнить? – Angew

+0

'std :: ostream' похоже на соединение для отправки (в одну сторону) данных куда-то. Вы не можете читать, как если бы это были данные. –

+0

Я хочу преобразовать std :: ostream в QDataStream. Вот и все. –

ответ

3

Вы не можете просто преобразовать один в другой. Но вы можете использовать QBuffer в качестве обходного пути. Это QIODevice, поэтому вы можете создать из него QDataStream. Когда вы закончите запись своих данных, получите QByteArray из буфера и используйте свои данные для записи в ваш std::ostream.

Смежные вопросы