Is it possible to serialize and deserialize a class in C++?

前端 未结 13 2679
我寻月下人不归
我寻月下人不归 2020-11-22 02:18

Is it possible to serialize and deserialize a class in C++?

I\'ve been using Java for 3 years now, and serialization / deserialization is fairly trivial in that lang

13条回答
  •  被撕碎了的回忆
    2020-11-22 02:51

    You can check the amef protocol, an example of C++ encoding in amef would be like,

        //Create a new AMEF object
        AMEFObject *object = new AMEFObject();
    
        //Add a child string object
        object->addPacket("This is the Automated Message Exchange Format Object property!!","adasd");   
    
        //Add a child integer object
        object->addPacket(21213);
    
        //Add a child boolean object
        object->addPacket(true);
    
        AMEFObject *object2 = new AMEFObject();
        string j = "This is the property of a nested Automated Message Exchange Format Object";
        object2->addPacket(j);
        object2->addPacket(134123);
        object2->addPacket(false);
    
        //Add a child character object
        object2->addPacket('d');
    
        //Add a child AMEF Object
        object->addPacket(object2);
    
        //Encode the AMEF obejct
        string str = new AMEFEncoder()->encode(object,false);
    

    Decoding in java would be like,

        string arr = amef encoded byte array value;
        AMEFDecoder decoder = new AMEFDecoder()
        AMEFObject object1 = AMEFDecoder.decode(arr,true);
    

    The Protocol implementation has codecs for both C++ and Java, the interesting part is it can retain object class representation in the form of name value pairs, I required a similar protocol in my last project, when i incidentally stumbled upon this protocol, i had actually modified the base library according to my requirements. Hope this helps you.

提交回复
热议问题