Название: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 10:37 Добрый день
Есть класс QPacket. У него 2 публичных члена QByteArray dev, QDataStream out. Конструктор имеет вид Код: QPacket::QPacket(clientOpcode opcode) Код: QPacket packet(C_AUTH_START); Название: Re: QDataStream: No device Отправлено: mutineer от Июнь 24, 2012, 10:42 Локальные переменные конструктора вижу, публичных членов класса не наблюдается. Вероятно ошибки потому, что packet.out ничем не инициализирован
Название: Re: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 11:33 QDataStream out(&dev, QIODevice::WriteOnly); Разве не инициализация?Название: Re: QDataStream: No device Отправлено: mutineer от Июнь 24, 2012, 11:34 QDataStream out(&dev, QIODevice::WriteOnly); Разве не инициализация?Это создание и инициализация локальной для конструктора переменной out Название: Re: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 11:43 QDataStream out(&dev, QIODevice::WriteOnly); Разве не инициализация?Это создание и инициализация локальной для конструктора переменной out Код: void setStream(QDataStream stream) { out = stream; } Название: Re: QDataStream: No device Отправлено: mutineer от Июнь 24, 2012, 11:45 Можно использовать список инициализации конструктора, можно использовать
void QDataStream::setDevice ( QIODevice * d ) для установки девайса Название: Re: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 11:52 Можно использовать список инициализации конструктора, можно использовать void QDataStream::setDevice ( QIODevice * d ) для установки девайса Код: void initStream(QDataStream stream) { out.setDevice(stream.device()); } Название: Re: QDataStream: No device Отправлено: mutineer от Июнь 24, 2012, 11:56 Код: void initStream(QDataStream stream) { out.setDevice(stream.device()); } смотря что ты собираешься с этим делать. Но два ДатаСтрима на одни девайс это не есть хорошо Название: Re: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 11:58 смотря что ты собираешься с этим делать. Но два ДатаСтрима на одни девайс это не есть хорошо Тогда я вообще не понимаю.Можете объяснить как сделать корректную инициализацию публичного QDataStream в конструкторе с публичным же QByteArray? Название: Re: QDataStream: No device Отправлено: mutineer от Июнь 24, 2012, 12:02 смотря что ты собираешься с этим делать. Но два ДатаСтрима на одни девайс это не есть хорошо Тогда я вообще не понимаю.Можете объяснить как сделать корректную инициализацию публичного QDataStream в конструкторе с публичным же QByteArray? Используй список инициализации, Люк. или сделай в конструкторе out.setDevice(&dev) (если out и dev это члены класса) Название: Re: QDataStream: No device Отправлено: gmltA от Июнь 24, 2012, 12:17 |