[英]Fstream access as private member
文件類
class File
{
private:
fstream dataFile;
public:
File();
};
File::File()
{
dataFile.open("Morse.bin", ios::in | ios::binary);
if(dataFile.fail())
cout << "File could not be opened.\n";
else
cout << "File opened successfully!\n";
}
解碼器類
class Decoder: public File
{
private:
char line;
public:
void getLine();
};
void Decoder::getLine()
{
while(dataFile.get(line))
{
cout << line;
}
}
2個問題:
dataFile
是否包含Morse.bin
內容? file opened successfully
消息顯示,但我只是想確認。
我想在Decoder
類中逐個字符地讀取字符。 我遇到的問題是從Decoder
類訪問dataFile
。 我嘗試為dataFile
創建一個訪問器函數,但它不允許我訪問它。 錯誤消息是File::dataFile is inaccessible
。 這是有道理的,因為它是私人的。 但是,如果我無法創建一個可以返回dataFile
的訪問器函數,那么如何操作dataFile
呢?
使dataFile
受到保護,或者從File
提供對它的訪問者。
class File { protected: fstream dataFile; public: File(); }; File::File() { dataFile.open("Morse.bin", ios::in | ios::binary); if(dataFile.fail()) cout << "File could not be opened.\\n"; else cout << "File opened successfully!\\n"; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.