我正在编写一个处理文本文件的类。我想“复制” ifstream-object 属性。下面的代码显示了我是如何做到的。我对函数 w.m_fin.tellg()有疑问:
- 错误 C2662:“std::basic_istream<_Elem,_Traits>::tellg”:无法将“this”指针从“const std::ifstream”转换为“std::basic_istream<_Elem,_Traits> &”
我想在源对象中设置目标对象中的文件位置。如果我将参数设为非 const [ Word(Word& w) ] 一切都可以。但我不想让它成为非常量。我应该怎么做才能解决这个问题?
谢谢
class Word
{
private:
std::ifstream m_fin;
std::string m_in_filename;
public:
Word(const Word& w): m_in_filename( w.m_in_filename )
{
m_fin(m_in_filename);
m_fin.copyfmt( w.m_fin );
m_fin.clear( w.m_fin.rdstate() );
m_fin.seekg( w.m_fin.tellg() );//here I get an error
}
}