我想实现我自己的输入/输出文件 API。我想要这样做的原因是,在低级别上会有很多文件系统(硬盘、HTTP 等等),我需要为用户提供一个通用接口。API 看起来有点像这样:
class GIO_CORE
{
public:
GIO_CORE(void);
virtual int open(char* path, int openMode) = 0;
virtual int close() = 0;
virtual void write(char* s, int size) = 0;
virtual void read(char* s, int size) = 0;
//many more
};
所以现在我正在实现硬盘内存,这是最简单的。我想要这样做的方法是保留一个指向当前使用的文件的 ifstream 和 ofstream 指针。所以我想在 Open 函数中使用我的 ifstream 或 ofstream 指针(取决于 OpenMode)指向打开的文件,然后在 write 或 read 函数中对该 fstream 进行操作。有没有更好的想法来做到这一点?
编辑:以下问题已解决
无论如何,在标题中添加 ifstream 和 ofstream 时出现编译错误:
class GIO_Persistent_File_System : public GIO_CORE
{
public:
GIO_Persistent_File_System(void);
int open(char*, int);
int close();
void write(char* s, int size);
void read(char* s, int size);
ifstream infile; **this causes compilation error**
错误是:“缺少;在标识符 infile 之前。缺少类型说明符 - 假定为 int。
我该如何解决这个问题?