溫馨提示×

c++序列化和反序列化怎么實現

c++
小億
158
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女