2

我想实现我自己的输入/输出文件 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。

我该如何解决这个问题?

4

2 回答 2

1

不要忘记在 C++ 标准库头文件中定义的类型是在std命名空间中定义的:

std::ifstream infile;
于 2013-03-28T12:17:11.400 回答
-2
#include <fstream>
using namespace std;

可能会解决你的问题

于 2013-03-28T12:19:39.227 回答