将fstream对象的引用分配给现有的fstream对象

时间:2016-06-09 21:44:53

标签: c++ fstream

我正在制作一个拼写检查程序。

public:
SpellChecker(fstream& fileName)
    :dic("wordEn.txt"),
    fileToSpell(fileName),
    appendbleChanges()
{
}

private:
    Dictionary dic;//dictionary
    fstream& fileToSpell;
    stringMap appendbleChanges;//map that save changes to the words in the file

这是该类的简化版本。创建字典是昂贵的,我不希望客户端创建它,所以我让拼写检查器负责制作它。那么提供一个setFile()函数是合乎逻辑的,该函数使拼写检查器类可以处理新文件,而无需再次创建字典。

void SpellChecker::setFile(fstream& fileName)
{
    appendbleChanges.clear();//clear the previous history 

    fileToSpell.open(fileName);//wrong!!
}

但是我找不到将fileName分配给fileToSpell的方法。赋值运算符被删除,我知道使用std :: move()但它不是我想要做的,如果客户端想要在拼写检查后对文件进行进一步更改会怎样?我可以提供一个getFile()函数,但是让客户端记住这个并不好......

0 个答案:

没有答案