要實現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函數中,我們首先將數組序列化到文件中,然后從文件中讀取并反序列化數組。最后打印反序列化后的數組內容。