File類fstream的訪問爲私有成員
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
conten TS?file opened successfully
消息顯示,但我只是想確認。我想從
Decoder
類中按字符讀取一個字符。我遇到的問題是從Decoder
類訪問dataFile
。我試圖爲dataFile
創建一個存取函數,但它不允許我訪問它。錯誤消息是File::dataFile is inaccessible
。這是有道理的,因爲它是私人的。但是,如果我無法創建將返回dataFile
的訪問函數,那麼如何獲取dataFile
以便操縱它?
您可以添加** **數據文件在受保護的,或者你可以定義'Decoder'爲**友元類**,你有第二個選擇,但它太傻正常**不推薦** – Pavan