独自の入出力ファイル 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 に応じて) を使用して、開いているファイルをポイントし、書き込みまたは読み取り関数でこの 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**
そして、エラーは次のとおりです。
どうすればこれを解決できますか?