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