要实现C++数组类的序列化,可以通过重载输出流操作符(<<)和输入流操作符(>>)来实现。下面是一个简单的示例代码:
#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); // 将数组序列化到文件 std::ofstream outFile("array.txt"); outFile << arr; outFile.close(); // 从文件中反序列化数组 std::ifstream inFile("array.txt"); inFile >> arr; inFile.close(); std::cout << "Deserialized array: " << arr << std::endl; return 0;}在上面的示例中,Array类是一个简单的数组类,重载了输出流操作符和输入流操作符。在main函数中,我们首先将数组序列化到文件中,然后从文件中读取并反序列化数组。最后打印反序列化后的数组内容。