项目需求将用户上一次配置信息保存到硬盘上,以便下次用户直接加载。我是讲用户配置信息作为一个类存在的,研究了2天QT平台上的对象序列化问题。C++的序列化问题在VC平台上实现比较简单。Java的序列化问题只需要实现seriable接口即可。网上查了几个QT相关的例子,发现各种错误,最大的错误就是不能编译成功。在QT平台上使用QDataStream作为序列化的输入输出流,http://www.kuqin.com/qtdocument/qdatastream.html。文档里使用Q_INT32作为基本数据类型,但是我在QT平台上没有找到Q_INT32的类型,只有qint32,必须使用qint32代替int可以实现基本数据类型
int的序列化。
/TEST测试类该类的友元函数 重载》 《
#ifndef TEST_H
#define TEST_H
#include <QString>
typedef struct xx
{
int x;
int y;
}XX;
class Test
{
public:
Test();
int age;
QString name;
XX aa;
friend QDataStream& operator<<(QDataStream&,Test&);
friend QDataStream& operator>>(QDataStream&,Test&);
};
#endif // TEST_H
//test的实现类,在友元函数负责将test对象的分解为基本数据类型,然后写入QDataStream流中。
#in