Qt序列化 - 如何排除字段?

时间:2012-07-24 16:33:53

标签: c++ qt serialization qt4

我有一个包含大量动态(QVectors)和静态字段的结构,我需要对其进行序列化。我愿意使用这个:http://www.developer.nokia.com/Community/Wiki/Qt_Object_Serialization

但是我需要这个结构中的一个字段,但我不希望它被序列化,任何建议如何避免它?

1 个答案:

答案 0 :(得分:3)

要实现序列化,您将为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;
    }
};