Ну rez = s; точно не покатит.
имхо Проще будет переопределить QDataStream &operator>>(QDataStream &, QXxx &);
и если есть нестандартные поля то в них тоже переопределить его.
сделать эту функцию friend для класса в котором переопределяешь и все.
Иначе разбирать строчку и записывать в поля.
Вот пример писал недавно:
C++ (Qt)
class ipAddress
{
public:
ipAddress();
...
private:
quint8 myIp[4];
protected:
friend QDataStream& operator>>(QDataStream &stream, ipAddress &address);
friend QDataStream& operator<<(QDataStream &stream, const ipAddress &address);
};
QDataStream& operator<<(QDataStream &stream, const ipAddress &address)
{
for (int i = 0 ; i < 4 ; i++ ) stream << address.myIp[i];
return stream;
}
QDataStream& operator>>(QDataStream &stream, ipAddress &address)
{
for (int i = 0 ; i < 4 ; i++ ) stream >> address.myIp[i];
return stream;
}
и можно писать свой класс прямо в поток.
П.С. не претендую на то что мое решение лучшие .