溫馨提示×

C++ array類如何實現(xiàn)序列化

c++
小樊
86
2024-07-19 03:00:37
欄目: 編程語言

要實現(xiàn)C++數(shù)組類的序列化,可以通過重載輸出流操作符(<<)和輸入流操作符(>>)來實現(xiàn)。下面是一個簡單的示例代碼:

#include <iostream>
#include <fstream>

class Array {
private:
    int* data;
    int size;
public:
    Array(int size) {
        this->size = size;
        data = new int[size];
    }

    ~Array() {
        delete[] data;
    }

    friend std::ostream& operator<<(std::ostream& os, const Array& arr) {
        for (int i = 0; i < arr.size; i++) {
            os << arr.data[i] << " ";
        }
        return os;
    }

    friend std::istream& operator>>(std::istream& is, Array& arr) {
        for (int i = 0; i < arr.size; i++) {
            is >> arr.data[i];
        }
        return is;
    }
};

int main() {
    Array arr(5);

    // 將數(shù)組序列化到文件
    std::ofstream outFile("array.txt");
    outFile << arr;
    outFile.close();

    // 從文件中反序列化數(shù)組
    std::ifstream inFile("array.txt");
    inFile >> arr;
    inFile.close();

    std::cout << "Deserialized array: " << arr << std::endl;

    return 0;
}

在上面的示例中,Array類是一個簡單的數(shù)組類,重載了輸出流操作符和輸入流操作符。在main函數(shù)中,我們首先將數(shù)組序列化到文件中,然后從文件中讀取并反序列化數(shù)組。最后打印反序列化后的數(shù)組內(nèi)容。

0