温馨提示×

c++序列化和反序列化怎么实现

c++
小亿
86
2024-04-15 09:55:09
栏目: 编程语言

在C++中,序列化和反序列化可以通过自定义类来实现。以下是一个简单的示例:

#include <iostream>
#include <fstream>

class Person {
private:
    std::string name;
    int age;

public:
    Person(std::string name, int age) : name(name), age(age) {}

    void serialize(std::ofstream& ofs) {
        ofs << name << " " << age << std::endl;
    }

    void deserialize(std::ifstream& ifs) {
        ifs >> name >> age;
    }

    void display() {
        std::cout << "Name: " << name << ", Age: " << age << std::endl;
    }
};

int main() {
    Person p1("Alice", 25);
    
    // 序列化
    std::ofstream ofs("person.txt");
    p1.serialize(ofs);
    ofs.close();

    // 反序列化
    Person p2("", 0);
    std::ifstream ifs("person.txt");
    p2.deserialize(ifs);
    ifs.close();

    // 显示反序列化结果
    p2.display();

    return 0;
}

在上面的示例中,定义了一个Person类,包含姓名和年龄两个成员变量。该类定义了serializedeserialize方法来序列化和反序列化对象的成员变量。在main函数中,创建了一个Person对象p1,并将其序列化到文件person.txt中。然后再从文件中反序列化得到一个新的Person对象p2,最后调用display方法显示反序列化结果。

0