C++ (Qt)QByteArray ba;QDataStream ds1(&ba, QIODevice::WriteOnly);QVector<object> objects1;ds1 << objects2;
C++ (Qt)QDataStream ds2(ba, QIODevice::ReadOnly);QVector<object> objects2;ds2.device()->reset();ds2 >> objects2;
C++ (Qt)QByteArray ba;QDataStream ds(&ba, QIODevice::WriteOnly);QVector<object> objects;int size = objects->size();ds << size;for(int i = 0; i < size; i++){ ds << objects[i]->name; ds << objects[i]->angle; ds << objects[i]->velocity;} [\code] ну и на принимающей стороне все делать в обратном порядке с учетом считанного размера массива
QDataStream& operator<<(QDataStream& s, const object& v)
C++ (Qt)bool ShmObject::serialize(QByteArray &ba){ QDataStream ds(&ba, QIODevice::WriteOnly); ds << name; ds << shape; ds << psi; return true;}
C++ (Qt)QDataStream ds1(&ba, QIODevice::WriteOnly);QVector<object> objects1;ds1 << objects2;
operator<<()
C++ (Qt) int ID = stream.ReadInt(); switch (ID) { case ID_OBJ1: { MyObj1 * obj1 = new MyObj1(); obj1->Read(stream); this->SetData1(obj1); break; } // и еще столько case сколько типов объектов ... }