我在寫一個類來提供將用於讀取和寫入文件的各種IO操作。我目前正試圖從fstream繼承,而不是創建自己的文件打開,關閉等功能。目前我下面的示例代碼沒有添加任何函數,我只是打開寫入並關閉它。但是,測試代碼無法成功打開文件時,exicuted。我將添加額外的代碼,我可以正確地從fstream繼承。這段代碼使用g ++時沒有編譯器警告或錯誤,它運行時沒有崩潰,但是我收到「無法打開文件」消息,證明open並不成功。從fstream繼承
int main(int argc, char* argv[])
{
FileParser myFileParser;
myFileParser.open("c:\test.txt");
if (myFileParser.is_open())
{
myFileParser << "This is a line.\n";
myFileParser << "This is another line.\n";
myFileParser.close();
}
else
{
cout << "Unable to open file\r\n";
}
myFileParser.close();
return 0;
}
#pragma once
#include <fstream>
using namespace std;
class FileParser: public fstream
{
public:
FileParser(void);
virtual ~FileParser(void);
private:
};
#include "FileParser.h"
FileParser::FileParser(void)
{
}
FileParser::~FileParser(void)
{
}
任何有關這個問題的幫助將不勝感激。
此問題現已解決,感謝您的支持。
問候
除了@WhozCraig所說的,你已經選擇擴展可能是最糟糕的一類設計。關於如何實際執行的文檔不存在。我在幾年前嘗試過提供套接字流類。它甚至花了很長時間才弄清楚該怎麼做,以及實際的I/O發生在哪裏。相比之下,編寫套接字部分是微不足道的。 – EJP