【发布时间】:2012-07-24 16:33:53
【问题描述】:
我有一个包含大量动态(QVectors)和静态字段的结构,我需要对其进行序列化。我愿意用这个:http://www.developer.nokia.com/Community/Wiki/Qt_Object_Serialization
但是我需要这个结构中的一个字段,但我不希望它被序列化,有什么建议可以避免它吗?
【问题讨论】:
标签: c++ qt serialization qt4
我有一个包含大量动态(QVectors)和静态字段的结构,我需要对其进行序列化。我愿意用这个:http://www.developer.nokia.com/Community/Wiki/Qt_Object_Serialization
但是我需要这个结构中的一个字段,但我不希望它被序列化,有什么建议可以避免它吗?
【问题讨论】:
标签: c++ qt serialization qt4
要实现序列化,您将为 QDataStream + 您的数据结构定义 << 和 >> 运算符。所以不要写你不想序列化的字段!
编辑:要使自定义类序列化,您必须做什么:
class MyClass
{
int member1;
int member2; // <- Don't serialize me!
int member3;
public:
//Constructors and methods and bears (oh my!)...
friend operator << (QDataStream& stream, const MyClass& myclass)
{
//Don't write member2:
return stream << myclass.member1 << myclass.member3;
}
friend operator >> (QDataStream& stream, MyClass& myclass)
{
//Don't read it, either:
return stream >> myclass.member1 >> myclass.member3;
}
};
【讨论】: