91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++序列化和反序列化怎么運用

c++
小億
88
2023-11-09 01:04:58
欄目: 編程語言

C++中的序列化和反序列化可以用于將對象的狀態以字節流的形式保存到文件或數據庫中,然后在需要時重新讀取并恢復對象的狀態。

以下是一個示例,演示了如何在C++中使用序列化和反序列化:

#include <iostream>
#include <fstream>
#include <sstream>

class Student {
private:
    std::string name;
    int age;
public:
    Student(const std::string& name, int age) : name(name), age(age) {}

    std::string getName() const {
        return name;
    }

    int getAge() const {
        return age;
    }

    // 序列化對象
    std::string serialize() const {
        std::stringstream ss;
        ss << name << "," << age;
        return ss.str();
    }

    // 反序列化對象
    static Student deserialize(const std::string& data) {
        std::stringstream ss(data);
        std::string name;
        int age;
        std::getline(ss, name, ',');
        ss >> age;
        return Student(name, age);
    }
};

int main() {
    // 創建一個學生對象
    Student student("Alice", 20);

    // 序列化對象并保存到文件
    std::string serializedData = student.serialize();
    std::ofstream file("student.txt");
    file << serializedData;
    file.close();

    // 從文件中讀取數據并反序列化為對象
    std::ifstream readFile("student.txt");
    std::stringstream buffer;
    buffer << readFile.rdbuf();
    std::string fileData = buffer.str();
    readFile.close();

    Student deserializedStudent = Student::deserialize(fileData);

    std::cout << "Name: " << deserializedStudent.getName() << std::endl;
    std::cout << "Age: " << deserializedStudent.getAge() << std::endl;

    return 0;
}

運行上述代碼,將會輸出反序列化后的學生對象的名稱和年齡。

這只是一個簡單的示例,實際應用中可能需要更復雜的序列化和反序列化操作,例如處理對象的繼承關系、序列化嵌套對象等。

0
定兴县| 镇安县| 星座| 晋宁县| 甘德县| 水城县| 雷波县| 丁青县| 哈尔滨市| 黑河市| 双流县| 香河县| 贵南县| 崇礼县| 南昌市| 康保县| 南澳县| 镇康县| 永胜县| 平顺县| 库伦旗| 肃宁县| 行唐县| 博湖县| 安康市| 沙坪坝区| 新源县| 若尔盖县| 武隆县| 梁平县| 上饶市| 民丰县| 乐业县| 山西省| 榆林市| 武夷山市| 天台县| 温宿县| 崇仁县| 乐山市| 九台市|