簡體   English   中英

Fstream作為私人會員訪問

[英]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個問題:

  1. dataFile是否包含Morse.bin內容? file opened successfully消息顯示,但我只是想確認。

  2. 我想在Decoder類中逐個字符地讀取字符。 我遇到的問題是從Decoder類訪問dataFile 我嘗試為dataFile創建一個訪問器函數,但它不允許我訪問它。 錯誤消息是File::dataFile is inaccessible 這是有道理的,因為它是私人的。 但是,如果我無法創建一個可以返回dataFile的訪問器函數,那么如何操作dataFile呢?

  1. 還沒。 你沒有讀過它。
  2. 使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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM