【发布时间】:2013-06-08 19:54:20
【问题描述】:
我正在编写一个处理文本文件的类。我想“复制” ifstream-object 属性。下面的代码显示了我是如何做到的。我的函数 w.m_fin.tellg() 有问题:
- 错误 C2662: 'std::basic_istream<_elem>::tellg' : 无法将 'this' 指针从 'const std::ifstream' 转换为 'std::basic_istream<_elem> &'李>
我想在源对象中设置目标对象中的文件位置。 如果我将参数设为非 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
}
}
【问题讨论】:
-
什么是
w?我没有看到它在某处声明 -
@soon:大概
w应该和prep一样。 @DFooz:请始终发布能够证明您的问题的真实代码。很高兴您编辑了代码以在此处发布,但是当您这样做时,您需要确保编辑后的版本仍然显示您的问题。 -
@ruakh,你是对的。对不起。固定
标签: c++