c++ 保存类对象
时间: 2023-08-04 13:21:37 浏览: 51
要保存类对象,可以将其序列化成二进制或者文本格式,然后存储到文件中或者数据库中。在C++中,可以使用标准库中的序列化和反序列化机制来实现这个过程。
首先,需要在类中定义一个成员函数,将对象的数据成员序列化到一个字符串中。例如:
```
class MyClass {
public:
std::string serialize() const {
std::ostringstream os;
os << x_ << " " << y_ << " " << z_;
return os.str();
}
private:
int x_;
double y_;
std::string z_;
};
```
然后,可以将序列化后的字符串存储到文件中:
```
MyClass obj;
std::string serialized = obj.serialize();
std::ofstream file("data.bin");
file.write(serialized.c_str(), serialized.size());
```
要恢复对象,需要从文件中读取序列化后的字符串,并将其反序列化为一个对象。例如:
```
std::ifstream file("data.bin");
std::string serialized((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
MyClass obj;
std::istringstream is(serialized);
is >> obj;
```
需要注意的是,反序列化的过程需要在类中定义一个构造函数或者重载运算符来从字符串中恢复对象的数据成员。