c++ - Qt 序列化 - 如何排除一个字段?

标签 c++ qt serialization qt4

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

但是我需要这个结构中的一个字段,但我不希望它被序列化,有什么建议可以避免吗?

最佳答案

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

关于c++ - Qt 序列化 - 如何排除一个字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11635368/

相关文章:

c++ - 创建一个从字符串中删除特定字符的函数。我的程序有什么问题?

c++ - C++中double/float类型二进制序列化的可移植性

c++ - 在 QProgressBar 中显示文本

java - Spring JsonView 解除嵌套字段

c++ - 从 std::vector<unsigned char> 读取二进制数据的最简单方法?

c++ - 为什么不支持 QCamera::CaptureVideo?

c++ - 构建可重用代码

c++ - 如何让我的 Qt 程序持续向我的 Arduino 发送字符串?

c++ - 使用 vbo ,使用着色器绘制纹理,但不显示任何内容

Django rest 序列化程序在数据存在时中断