Java 有一种非常简单的方法来序列化对象。在 C++ 中找不到类似的东西。我找到了Boost Serialization,以及使用 ifstream 和 ofstream的基本方法。
我有一个任务类,它有一个标题、ID、状态和日期/时间。我想在类中实现一个序列化函数,以二进制模式保存该对象。但我想将类的多个实例保存在一个二进制文件中。比方说,一个任务数组。
在类上实现序列化方法会是一个好方法吗?它一次只会序列化一个,如果我使用 ifstream/ofstream,它看起来不太好,因为我会经常打开和关闭文件。此外,每个任务都将保存在不同的文件中。
Boost 的序列化看起来不错,但如果可能的话,对我来说最好避免第三方依赖。
实现这一目标的最佳方法是什么?
我的班级标题:
#ifndef TASK_H
#define TASK_H
class Task {
public:
enum Status { COMPLETED, PENDIENT };
Task(std::string text);
~Task();
// SETTERS
void setText(std::string text);
void setStatus(Status status);
// GETTERS
const std::string getText() const;
const bool getStatus() const;
const int getID() const;
const int getCount() const;
const std::string getDate() const;
const std::string getTime() const;
// DATE
const int getDay() const;
const int getMonth() const;
const int getYear() const;
// TIME
const int getSecond() const;
const int getMinute() const;
const int getHour() const;
// UTILS
//serialize
const void printFormatted() const;
// OVERLOAD
bool operator==( const Task &text2 ) const;
private:
void setID();
static int sCount;
int id;
std::string text;
Status status;
tm *timestamp;
};
#endif